龍芯1D晶元中文手冊,龍芯1D用戶手冊

来源:https://www.cnblogs.com/16rd/archive/2019/05/15/10869532.html
-Advertisement-
Play Games

龍芯1D是超聲波熱表、水錶和氣表測量專用 SoC 晶元。該晶元集成超聲波時間測量、超聲波脈衝發生器、溫度測量單元、CPU、串口、紅外收發器、段式LCD 控制器、電壓檢測單元、空管檢測單元、超聲波換能器斷線檢測等功能部件,配合完善的編程、模擬、調試環境,將會大大簡化超聲波熱表測量系統的軟硬體設計。 龍 ...


龍芯1D是超聲波熱表、水錶和氣表測量專用 SoC 晶元。該晶元集成超聲波時間測量、超聲波脈衝發生器、溫度測量單元、CPU、串口、紅外收發器、段式LCD 控制器、電壓檢測單元、空管檢測單元、超聲波換能器斷線檢測等功能部件,配合完善的編程、模擬、調試環境,將會大大簡化超聲波熱表測量系統的軟硬體設計。

龍芯 1D 由測量模塊、處理器子系統、電源管理模塊、顯示模塊等部分組成,採用 AXI、APB 匯流排相連。

其中,
(1)CPU 是處理器子系統,是整個晶元的控制核心,處理器子系統包括處理器核以及 Flash、SPI 等外設模塊,其電源可單獨關閉以節約功耗;
(2)Snrths 是測量模塊,包括脈衝發生器、模擬比較器和時間數字轉換器,時間測量精度達到 40ps,其電源可關閉以節約功耗;
(3)LCD 顯示模塊是段式 LCD 控制器,最多可對 96 段進行顯示控制,電源由軟體來控制,可單獨關閉以降低功耗;
(4)PMU 是電源管理模塊,是實現低功耗的關鍵部件。PMU 域的電源不可關斷,自晶元硬複位之後,PMU 域將一直保持上電狀態,從而實現對晶元其他模塊的電源管理。系統啟動後,軟體可配置 PMU 寄存器,根據實際需要打開或者關閉CPU、Snrths 和 LCD 模塊的電源,實現晶元功耗的精細控制。

LS132R 處理器核
LS132R 處理器核,相容 MIPS32 指令集,包含一個硬體浮點部件,支持單精度 float 類型的浮點運算。(如需瞭解 MIPS 架構的背景知識,請參考 MIPS 官方文檔。)

LS132R 處理器核是 32 位的處理器,一共有 32 個 32 位的通用寄存器,編號為$1~$31,用於數據的存儲和運算;在協處理器 CP0(Co-Processor)中包含幾個特殊的控制寄存器 SFR(Special Function Register),用於控制處理器的工作模式,當晶元上電或者複位時,需要對這些 SFR 進行配置,將處理器核初始化到一個合適的狀態。

下麵對幾個需要配置的 SFR 進行簡要介紹(本手冊只標出實際中使用到的位域,請用戶根據需要進行配置,其他未介紹的位域使用時請寫‘0’):
CP0_COUNT(RO)

CP0_COUNT 和 CP0_COMPARE 這兩個寄存器構成一個定時器,初始值都是 0,達到最大計數時也會自動清零,時鐘源是晶元時鐘(8MHz),也就是每 125ns 自動地 Count 寄存器加一,當 Count 和 Compare 相等時,產生一個 Timer 中斷(參考 13.1 節內容)。往 CP0_COMPARE 寄存器寫進一個新的值,可以清除這個中斷。

CP0_STATUS(R/W)

其中,
CU1------“1”代表 enable 硬體浮點部件,“0”disable
CU0------“1”代表可訪問控制器 CP0,“0”disable
BEV------“1”代表中斷入口在 0xbfc00380
NMI------“1”代表出現 NMI,“0”表示不是 NMI
IMx------“1”代表 enable 第 x 號中斷,“0”disable
IE-------“1”代表 enable 所有中斷,“0”disable
註意:預設狀態下不支持中斷嵌套。
CP0_CAUSE(ExcCode 位域 RO,其它 R/W)

其中,

DC------“0”代表 enable 定時器(CP0_COUNT 和 CP0_COMPARE),“1”disable
IPx------“1”代表第 x 號中斷等待處理
ExcCode-----代表異常類型

註:“RO----只讀,R/W--可讀可寫,WO--只寫”,這些都代表寄存器的訪問類型,後面內容的描述都參照這個標準。

地址空間

註 1:訪問類型包括位元組(B),半字(H)和字(W),訪存地址必須對齊。
註 2:若訪存超出上表定義的範圍則會觸發 NMI 例外。

軟體對地址空間的訪問方式

龍芯1D晶元相容 MIPS 架構,沒有 cache 和 MMU 部件,軟體可訪問的地址空間為 0xa000,0000~0xbfff,ffff 這部分邏輯地址,通過將高 3 位(二進位)的地址清零來映射到物理地址 0x0000,0000~0x1fff,ffff。因此,軟體在訪問上述列表的地址時,需要訪問對應的邏輯地址,計算公式為:(邏輯或操作)

邏輯地址 = 物理地址 | 0xa000,0000

例如,軟體要讀寫 SRAM 第一個位元組,訪問的地址為 0xa000,0000,實際上訪問的是 0x0000,0000。

測量相關寄存器

註:該表中的寄存器都處於 PMU 域,一直處於上電狀態,晶元在“運行”和“休眠”之間切換時,這些寄存器的內容不變。

電源與測量控制
測量過程介紹

龍芯 1D 集成了完善的時差和溫度測量功能。一個測量過程包括以下幾個步驟:

1. 測量事件觸發;
2. 測量模塊啟動,完成指定的測量後將值寫入結果寄存器並引發中斷;
3. 軟體被喚醒,從結果寄存器取值並處理,隨後清空結果寄存器;
4. 等待下一個測量事件

其中測量事件的觸發有兩種方式:
1. 單次測量:軟體往 StartOP 位寫 1,啟動 MOP 類型的測量;
2. 定時測量:開啟巡航模式,硬體會根據配置,周期性地產生測量事件。
測量是非常精密的過程,對環境要求較高,因此軟體最好在測量模塊工作前將晶元置為休眠模式,關閉處理器系統。

電源管理

龍芯1D實現了完善的電源管理,通過有效的軟體控制,可大大延長電池壽命。按電源狀態分組,龍芯 1D 包括:電源管理模塊(PMU)、液晶顯示模塊(SLCD)、測量模塊(SNRTHS,Sonar 和 Thsens 的縮寫)、處理器模塊(CPU),如圖 4- 1 所示。

除 PMU 外,其它模塊均實現了低功耗關斷模式。
(1)SLCD 模塊的電源由 ChipCtrl.lcd_pd 一位控制,寫 1 關斷,寫 0 打開。該模塊的電源只能由軟體進行控制,關斷後再次打開需要重新配置其寄存器。

(2)SNRTHS 模塊的電源主要由測量狀態機自動控制。當有新的測量操作需要進行時,電源將自動打開;當測量結束,測量結果被軟體讀走(resread)後,電源自動關斷。該模塊的配置寄存器不會因為電源關斷而丟失,因此軟體無需反覆配置。但應註意,如果其電源處於關斷狀態,模塊內所有寄存器將無法訪問,讀寄存器操作只會返回 0,寫操作則被忽略掉。將 ChipCtrl.sonar_pd 寄存器寫 0可強行將該模塊打開,不受測量狀態機的控制。SNRTHS 模塊需要一段時間上電,軟體強行打開後等 8 個時鐘周期(8 條指令的延遲)才能訪問。

(3)CPU 模塊的電源只能被軟體關斷,並且只能通過 PMU 中斷喚醒後自動打開電源。(詳見 13.1 節內容,並不是所有中斷都能喚醒 CPU)CPU 模塊的關斷由 Command.Sleep 控制,軟體寫 1 後進入關斷模式,軟體需要保證在關斷電源之前所有內部模塊(包括 cpu 核以及外設模塊)都已完成任務,否則關斷操作將強制關閉模塊電源造成異常。例如,軟體寫 1 執行關斷操作時,如果串口列印尚未完成,那麼列印信息的末端將不能正常顯示而是出現亂碼。當PMU 有中斷時,CPU 模塊將被喚醒並自動打開電源。喚醒後 CPU 模塊內所有內部寄存器都會被覆位成預設值,處理器的執行與系統複位一致,因此軟體需要重新進行初始化操作。軟體需要判斷是一次系統複位,還是一次待機喚醒(無需重新初始化 PMU 域寄存器)。一個簡單的方法是在不掉電的 PMU 模塊中ChipCtrl.soft_flag 寄存器存儲狀態信息,根據其複位值為 0 進行判斷。CPU 模塊在關斷、打開時還會控制外部的 SPI Flash,使其進行相應的電源狀態轉換。如果沒有外部 SPI Flash,則關閉此功能可加速 CPU 模塊的電源狀態轉換,進一步降低功耗。

“運行”和“休眠”

CPU 模塊是系統運行的必要條件,根據 CPU 模塊的電源開關情況,可以將晶元劃分為兩個狀態:“運行”和“休眠”。

在實際使用中,當系統正在執行任務時,CPU 模塊電源打開,進行數據計算或者控制操作,此時晶元處於“運行”狀態;當系統處理完所有當前任務,CPU 模塊將處於一個等待的狀態,等待下一個未處理任務,這段等待時間內 CPU 處於無效工作狀態;在系統負載較輕的情況下,大部分時間內 CPU 處於無效工作狀態,如果在這段時間內關閉 CPU 的電源,將顯著地降低晶元功耗。將 CPU 模塊電源關閉,此時晶元處於“休眠”狀態,註意,在進入休眠之前,需要對晶元引腳(GPIO 的輸入輸出)進行配置,防止漏電。

巡航模式

龍芯1D支持硬體自發進行的周期性測量,稱為巡航模式。該模式下測量由硬體發起,測量結束後再喚醒軟體進行結果處理,可有效地降低電流消耗。

巡航模式下測量事件的觸發與 32.768K 時鐘產生的 1/16 秒事件同步。根據巡航的時間間隔,當 Count 寄存器的低幾位為 0,且即將加 1 時,觸發測量事件。以每秒 4 次測量為例,比較時看 Count.RTC 的最低兩位。若軟體希望使用定時器喚醒,為了不幹擾測量,最好將喚醒時間配置與測量事件錯開。

時差巡航和溫度巡航的測量事件有可能同時產生,但時差巡航優先順序高,只有測完時差,結束讀出後,測試狀態機才會接著處理溫度測量。

若測量結果長時間未被讀出,後續的巡航測量將無法開始。使用巡航模式時,軟體應當被設計成能夠及時處理測量結果。因此當出現連續兩次測量未能執行時通常意味著系統進入了異常狀態,軟體可配置 Command.WatchEn,使晶元在碰到這種情況時進行複位。

 

註:資料內容太多,完整資料,可到“http://bbs.16rd.com/thread-472326-1-1.html”,轉載請註明出處


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在別人電腦已登錄Windows的情況下: 打開控制面板 -> 管理工具 -> 電腦管理 或者 對Win圖標單擊右鍵 -> 電腦管理 -> 本地用戶和組 -> 用戶 我們可以操作用戶組的所以成員,包括Administrator、Guest、當前的用戶賬號。 對某個賬號單擊右鍵 -> 設置密碼 -> ...
  • 一、nginx代理的概述 概述:nginx是一款自由的、開源的、高性能的HTTP伺服器和反向代理伺服器;同時也是一個IMAP、POP3、SMTP代理伺服器;nginx可以作為一個內部網路代理上網的代理伺服器,另外nginx可以作為反向代理進行負載均衡的實現。 二、nginx之正向代理 解析:在如今的 ...
  • 在該文件夾下新建一個txt文件,輸入: ren *原尾碼名 *新尾碼名 保存,將此txt文件的尾碼改為.bat,雙擊運行,ok。 說明: ren 是rename(重命名)的縮寫。第一個參數指定 要匹配的部分,第二個參數指定 要替換為的文本。 示例:ren *.txt *.zip 將此文件夾中,所有後 ...
  • 找到其快捷方式 -> 右鍵 -> 屬性 -> 快捷方式 -> 快捷鍵 ...
  • 1、 PrintScreen 整個屏幕 Alt+PrintScreen 當前程式的視窗 Win+Shift+S 可選擇截圖範圍,但不能進行編輯。 以上方式均只是將截圖放到了系統剪貼板,需要在圖像處理工具、QQ輸入框等地方Ctrl+V,截圖才會顯示出來。 2、 Win+PrintScreen 自動截取 ...
  • 一、LNMP應用平臺概述 1.概述:LNMP代表的就是:Linux系統下Nginx+MySQL+PHP這種網站伺服器架構。Nginx是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器。Mysql是一個小型關係型資料庫管理系統。PHP是一種在伺服器端執行的嵌入HTM ...
  • Nginx 簡介 Nginx 是一個高性能的 HTTP 和反向代理 Web 伺服器,同時也提供了 IMAP/POP3/SMTP 服務。前向代理作為客戶端的代理,服務端只知道代理的 IP 地址而不知道客戶端的 IP 地址。 Nginx 安裝 推薦使用 LNMP 一鍵安裝包,Ubuntu/CentOS ...
  • Cockpit 進行主機監控 官網文檔: https://cockpit project.org/running.html 版本信息 針對Red Hat 安裝步驟 在okd集群環境中使用 查詢組件 安裝 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...