999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于RISC-V處理器內核微控制器的智能教學平臺①

2022-09-20 04:10:36陳宏銘王宜懷施連敏
計算機系統應用 2022年9期
關鍵詞:嵌入式人工智能系統

陳宏銘, 王宜懷, 楊 勇, 施連敏, 彭 彤

1(浙江海洋大學 信息工程學院, 舟山 316022)

2(蘇州大學 計算機科學與技術學院, 蘇州 215006)

3(南京沁恒微電子股份有限公司, 南京 210012)

嵌入式計算機系統最初源于傳統測控系統對計算機的需求, 隨著以微處理器(mini processor unit, MPU)為內核的微控制器(microcontroller unit, MCU)制造技術不斷進步, 計算機領域在通用計算機系統與嵌入式計算機系統這兩大分支分別得以發展. 通用計算機已經在科學計算、通信、日常生活等各個領域產生重要影響. 在后 PC 時代, 嵌入式系統的廣闊應用是計算機發展的重要特征. 嵌入式系統的技術基礎是要完成一個嵌入式系統產品的設計, 需要有硬件、軟件及行業領域相關知識. 但是, 隨著嵌入式系統中軟件規模日益增大, 對嵌入式底層驅動軟件的封裝提出了更高的要求, 可復用性與可移植性受到特別的關注, 嵌入式軟硬件構件化開發方法逐步被業界所重視[1].

2015 年以來, RISC-V 架構處理器在我國快速發展[2-5], 基于沁恒微電子 RISC-V 架構 CH32V307 微控制器構建通用嵌入式計算機(general embedded computer,GEC)生態系統, 形成相對完備的教學及實踐系統. 配合可以直接實踐的硬件系統 AHL-CH32V307, 具備簡捷、便利、邊學邊實踐等優點, 克服了實驗箱模式的冗余、不方便帶出實驗室、不易升級等缺點, 逐步探索嵌入式教學新模式[6].

1 從概念到實踐通用嵌入式計算機GEC

1.1 嵌入式系統開發具有較高技術門檻

智能終端及系統開發具有較高技術門檻. 芯片生產廠家往往提供用戶一份長篇幅的參考手冊, 少則幾百頁, 多則可達近千頁. 許多廠家也給出龐大軟件開發工具包(software development kit, SDK), 但設計人員需要花費許多精力從中提取出所需要的信息. 智能終端開發人員通常花費太多的精力在基于芯片級硬件設計及基于寄存器級的底層驅動設計上, 開發方式存在軟硬件開發顆粒度低、可移植性弱等問題.

特別是系統開發時, 會涉及到許多復雜技術問題,如傳感器應用設計、微控制器編程、終端(user equipment, UE)通信、數據庫系統、個人計算機(personal computer, PC)的程序設計、人機交互系統(human computer interaction, HCI)的軟件設計等, 具有較高技術門檻, 是許多中小企業技術轉型的重要瓶頸之一.

1.2 降低門檻的方法

遵循人的認識過程由研究共性技術, 實現降低門檻之目標. 為此, 需要深入研究3個提高的方法:

(1)提高硬件設計的顆粒度. 需要把硬件設計元件級過渡到硬件構件級為主的設計場景.

(2)提高軟件編程顆粒度. 需要把軟件編程顆粒度從寄存器級提高到知識要素級.

(3)提高軟硬件可移植性. 需要把嵌入式軟件工程基本原理應用其中, 提高軟硬件的可移植性.

在此基礎上, 建立其相應的生態系統, 就可有效降低嵌入式開發的技術門檻.

1.3 共性抽取的研究過程

1.3.1 如何完成3個提高

(1)如何提高硬件設計的顆粒度? 若能將MCU硬件最小系統及面向領域應用的共性電路封裝成一個整體, 則可提高UE的硬件設計顆粒度. 硬件設計則可從元件級過渡到硬件構件級為主的場景.

(2)如何提高軟件編程顆粒度? 若能設計出基于模塊共性知識要素的構件, 屏蔽寄存器級之差異, 則可把軟件編程顆粒度從寄存器級提高到知識要素級.

(3)如何提高軟硬件可移植性? 若能從共性知識要素角度研究可移植性問題, 屏蔽芯片生產廠家、編譯器類型等因素, 遵循軟硬件構件的設計原則, 則可提高軟硬件的可移植性.

1.3.2 提出GEC概念的時機

GEC概念的實質是把面向寄存器編程提高到面向知識要素編程, 提高了編程顆粒度. 但是, 這樣做也會降低實時性. 彌補實時性降低的方法是提高芯片的運行時鐘頻率. 目前MCU的總線頻率是早期MCU總線頻率幾十倍, 因此, 更高的總線頻率給提高編程顆粒度提供了物理支撐.

另一方面是軟件構件技術的發展與認識的普及,也為提出GEC概念提供了機遇. 嵌入式軟件開發人員越來越認識到軟件工程對軟件開發的重要支撐作用,也意識到掌握和應用軟件工程的基本原理對嵌入式軟件的設計、升級、芯片迭代與維護等方面, 具有不可或缺的作用. 因此, 從“零”開始的編程, 將逐步分化為構件制作與構件使用兩個不同層次, 也為嵌入式人工智能提供先導基礎.

1.3.3 GEC概念的特點

與MCU相比, GEC具有硬件可測性、編程快捷性與可移植性等基本特點.

(1)硬件直接可測性. 與一般MCU不同, GEC類似PC機, 通電后可直接可運行內部基本輸入輸出系統(basic input output system, BIOS)程序, user框架程序中包含類似于PC程序調試的printf語句, 通過串口向PC機輸出信息, 實現了GEC硬件的直接可測性.

(2)用戶軟件編程快捷性. 與一般MCU不同, GEC內部駐留的BIOS與PC機上電過程類似, BIOS內駐留了嵌入式常用驅動及RTOS, 并提供了函數原型級調用接口. 利用user程序不同框架, 用戶軟件不需要從“零”編起, 而是在相應框架基礎上, 充分應用BIOS資源, 實現快捷編程.

(3)用戶軟件可移植性. 與一般MCU不同, GEC的BIOS軟件由GEC提供者研發完成, 隨GEC芯片而提供給用戶, 即軟件被硬件化了, 具有通用性. 在此基礎上, 只要遵循軟件工程基本原則, GEC用戶軟件則具有較高的可移植性.

1.4 主要解決問題

這里提到解決的問題是第2節的基礎技術, 有了這些技術才能實現第2節的通用編程框架. 這也是符合軟件工程原理的框架, 為實現嵌入式產品的應用層軟件可移植性提供了技術基礎.

1.4.1 解決GEC硬件共性結構及BIOS駐留機制

(1)解決基于硬件構件概念研究GEC硬件設計方法, 結合BIOS駐留, 為將來GEC流片提供技術基礎.

(2)解決BIOS功能定位, 即確定內核時鐘與總線時鐘、啟動一個定時器, 提供時間函數調用接口、給出面向知識要素的常用底層驅動駐留與調用方式、啟動RTOS及其他功能.

(3)解決從BIOS轉入user程序執行, 在user正常運行情況下, 轉入BIOS的機制.

(4)解決實時操作系統(real-time operating system,RTOS)的駐留方法、映射接口模式及統一(application programming interface, API)接口格式 , 為實現不同RTOS下程序可移植提供技術支撐.

1.4.2 解決基于串口的下載與調試方法

為實現類PC機程序的開發模式, 需要:

(1)解決基于串口的下載、調式模式, 同時提出類似PC機程序開發中的printf語句功能, 從而實現類PC機程序的開發模式. 這里涉及中斷繼承與重定位機制、內存分割機制等. 探索基于串口的斷點調試模式方法.

(2)解決動態命令機制, 為user功能的在線擴展提供支撐. 研究多通信模式下的程序更新機制及遠程調試方法. 動態命令機制(dynamic command mechanism, DCM)機制是指在不影響嵌入式終端正常運行的前提下, 將一段具有特定功能的機器碼通過一定的通信方式臨時注入至指定存儲區域并運行的機制.這一段臨時的、具有一定功能的機器碼就稱為動態命令.

(3)解決針對NB-IoT、Cat1、4G、5G、WSN、WiFi等無線通信方式下的程序更新方法.

1.4.3 解決GEC開發生態系統

針對國外IDE的芯片相關性:

(1)解決面向不同MCU內核的統一編譯模式的集成開發環境的設計方法, 研究基于軟件工程基本原理的user程序框架, 使得用戶程序可移植.

(2)解決面向NB-IoT、Cat1、4G、5G、WSN、WiFi通信的共性編程框架, 形成基于GEC體系面向物聯網的快速開發生態系統, 為降低開發門檻、節約開發成本、縮短開發時間提供技術支撐.

(3)解決面基于GEC體系面向嵌入式人工智能的快速開發方法, 實現嵌入式人工智能的敏捷開發生態系統.

2 嵌入式系統的實現

嵌入式系統不單獨以通用計算機面目出現, 而是隱含在各類具體的智能產品中, 如手機、機器人、自動駕駛系統等. 嵌入式系統在嵌入式人工智能、物聯網、工廠智能化等產品中起核心作用.

由于嵌入式系統是一門理論與實踐密切結合的課程, 教學配合基于RISC-V 架構 AHL- CH32V307 嵌入式開發套件(圖1). AHL-CH32V307體積很小, 學員可以利用這個套件的硬件、軟件、文檔、開發環境等資源, 用于嵌入式系統入門學習.

圖1 AHL-CH32V307嵌入式開發套件

本文所設計的嵌入式教學系統, 通過通用嵌入式計算GEC概念, 將RISC-V指令集計算機銜接到打造多年的ARM體系. 可以復用ARM體系的生態資源,實現RISC-V指令集生態系統的快速建立與推廣應用.同時, 給出了適應RISC-V指令集的匯編程序框架、操作系統的移植與駐留、prinft函數打樁調試等快速實現. 因此, 所設計的嵌入式教學系統體現RISC-V指令集的特點與優勢.

AHL-CH32V307 以CH32V307VCT6 微控制器為核心, 輔以硬件最小系統集成紅、綠、藍三色燈, 復位按鈕, 二路 TTL-USB 串口, 外接 Type-C 線, 從而形成完整的通用嵌入式計算機. 為了滿足學校實驗室建設要求, 還制作增強型套件, 增加了 9 個外接組件, 包括聲音傳感器、加速度傳感器、人體紅外傳感器、循跡傳感器、振動馬達、蜂鳴器、四按鈕模塊、彩燈及數碼管等, 可完成物聯網相關實驗. 亦可通過主板上的開放式外圍引腳, 外接其他接口模塊進行創新性實驗. 該開發套件與一般嵌入式系統實驗箱不同, 不僅可以作為嵌入式系統教學使用, 還是一套較為完備的嵌入式微型計算機應用開發系統.

2.1 測試嵌入式開發硬件

因為出廠時已經將測試程序燒錄到嵌入式計算機內, 只要給供電嵌入式開發套件內的程序就可以運行,從運行效果可以體會到小小嵌入式計算機的功能.

步驟 1. 使用 Type-C 數據線給主板供電. 將 Type-C 數據線的小端連接主板, 另外一端接可以是筆記本電腦或個人計算機 PC的工具機 USB 接口.

步驟 2. 觀察程序運行效果. 現象如下: 紅、綠、藍各燈每 5 s、10 s、20 s 狀態變化, 對外表現為三色燈的合成色, 其實際效果如圖2 所示. 即開始時為暗, 依次變化為紅、綠、 黃(紅+綠)、藍、紫(紅+藍)、青(藍+綠)、白(紅+藍+綠), 周而復始.

圖2 三色燈實際效果

2.2 集成開發環境

嵌入式軟件開發有別于個人計算機(PC), 軟件開發的一個顯著的特點在于需要一個交叉編譯和調試環境, 即工程的編輯和編譯所使用的工具軟件通常在 PC 上運行, 這個工具軟件通常稱為集成開發環境(integrated development environment, IDE), 而編譯生成的嵌入式軟件的機器碼文件則需要通過寫入工具下載到目標機上執行, 本文的目標機就是AHL-CH32V307 開發套件.

本文介紹的集成開發環境為AHL-GEC-IDE, 具有編輯、編譯、鏈接等功能. 配合硬件可直接運行、調試程序, 根據芯片型號不同兼容常用嵌入式集成開發環境.

2.3 編譯、下載與運行第一個嵌入式程序

在正確安裝 AHL-GEC-IDE可以進行第一個嵌入式程序編譯、下載與運行, 以便直觀體會嵌入式程序的運行.

步驟 1. 硬件接線. 將 Type-C 數據線的小端連接主板的 Type-C 接口, 另外一端接通用計算機的 USB 接口.

步驟 2. 打開環境, 導入工程. 打開集成開發環境AHL-GEC-IDE, 單擊菜單“文件”→“導入工程”, 選擇“AHL-CH32V307-Test”. 導入工程后, 左側為工程樹形目錄, 右側為文件內容編輯區, 初始顯示 main.c 文件內容, 如圖3 所示.

圖3 IDE界面及編譯結果

步驟 3. 編譯工程. 單擊菜單“編譯”→“編譯工程”,就開始編譯. 正常情況下, 編譯后會顯示“編譯成功!”.

步驟 4. 連接 GEC. 單擊菜單“下載”→“串口更新”,將進入更新窗體界面. 單擊 “連接 GEC”查找目標GEC, 若提示“成功連接…”, 可進行下一步操作.

步驟 5. 下載機器碼. 單擊“選擇文件”按鈕, 導入被編譯工程目錄下 Debug 中的.hex文件, 然后單擊“一鍵自動更新”按鈕, 等待程序自動更新完成. 當更新完成之后, 程序將自動運行.

步驟 6. 通過串口觀察運行情況.

① 觀察程序運行過程. 在 IDE 的頂部菜單欄目,單擊“工具”→“串口工具”, 選擇其中一個串口, 波特率設為 115 200 并打開, 串口調試工具頁面會顯示三色燈的狀態、溫度等信息;

② 驗證串口收發. 關閉已經打開的串口, 打開另一個串口, 波特率選擇默認參數, 在“發送數據框”中輸入字符串, 單擊“發送數據”按鈕. 正常情況下, 主板會回送數據給 PC, 并在接收框中顯示, 效果如圖4 所示.

圖4 IDE內嵌的串口調試工具

3 外接傳感器及執行部件的編程方法

對應AHL-CH32V307 開發套件的硬件系統, 以下給出一些常見嵌入式系統被控單元(傳感器)的基本原理、電路接法和編程實踐.

3.1 開關量輸出類驅動構件

3.1.1 彩燈

彩燈的控制電路與RGB芯片集成在一個5050封裝的元器件中, 構成了一個完整的外控像素點, 每個像素點的三基色顏色可實現256級亮度顯示.

像素點內部包含了智能數字接口數據鎖存信號整形放大驅動電路、高精度的內部振蕩器和可編程定電流控制部分, 有效保證像素點光的顏色高度一致, 數據協議采用單線歸零碼的通訊方式, 通過發送具有特定占空比的高電平和低電平來控制彩燈的亮暗.

如圖5所示, 彩燈使用串行級聯接口, 能夠通過一根信號線完成數據的接收與解碼. VDD是電源端, 用于供電; DOUT是數據輸出端, 用于控制數據信號輸出;VSS接地; DIN控制數據信號的輸入端.

圖5 彩燈電路原理

3.1.2 人體紅外傳感器

任何發熱體都會產生紅外線, 輻射的紅外線波長跟物體溫度有關, 表面溫度越高, 輻射能量越強. 人體都有恒定的體溫, 所以會發出特定波長10 μm左右的紅外線, 人體紅外傳感器通過檢測人體釋放的紅外信號, 判斷一定范圍內是否有人體活動[7,8]. 默認輸出是低電平, 當傳感器檢測到人體運動時, 會觸發高電平輸出,小燈亮有3 s左右延遲.

如圖6所示, V_PIR1用于供電; REF為輸出引腳;實驗現象: 當用手靠近靠近人體紅外傳感器, 紅燈亮;遠離, 延遲3 s左右, 紅燈滅.

圖6 人體紅外傳感器電路原理

3.1.3 第一個匯編語言工程: 控制小燈閃爍

GPIO匯編程序是一個有RISC-V特色的實驗, 相對于 C 語言編程, 匯編在編程的直觀性、 編程效率以及可讀性等方面都有所欠缺, 控制小燈閃爍的匯編語言編程方法在開發環境中, 程序是通過工程的方式組織起來的. 匯編工程通常包含芯片相關的程序框架文件、軟件構件文件、工程設置文件、主程序文件及抽象構件文件等.

圖7 給出小燈閃爍匯編工程的樹型結構, 主要包括 MCU 相關頭文件夾、底層驅動構件文件夾、Debug工程輸出文件夾、程序文件夾等. 匯編工程僅包含一個匯編主程序文件, 該文件名固定為 main.s, 包含有以下內容:

圖7 小燈閃爍匯編工程的樹型結構

(1)工程描述. 工程名、程序描述、版本、日期等.

(2)包含總頭文件. 聲明全局變量和包含主程序文件中需要的頭文件、宏定義等.

(3)主程序. 主程序一般包括初始化與主循環兩大部分. 初始化包括堆棧初始化、 系統初始化、I/O 端口初始化、中斷初始化等.

(4)內部直接調用子程序.

4 嵌入式人工智能簡明實例

嵌入式人工智能是指將人工智能的基本學習或推理算法應用于嵌入式產品, 利用CH32V307 微控制器設計了一套成本低、原理清晰、簡單實用, 基于圖像識別的嵌入式物體認知系統, 可作為人工智能的快速入門系統. 本文實現的嵌入式人工智能教學平臺總體結構如圖8所示. 在整體系統中以微控制器為核心, 通過硬件最小系統保證能夠基本運行, 使用攝像頭模塊采集圖像數據, 并使用通信模組提供遠程通信功能, 并與電源轉換電路等模塊共同構成了硬件平臺. 識別終端同時也提供其他不同的外設傳感器等輸入輸出設備使用接口, 實現不同執行機制的并行使用, 完成對物體的認知以及結果輸出[9,10].

圖8 嵌入式人工智能教學平臺總體結構

基于圖像識別的嵌入式物體認知系統是利用嵌入式計算機通過攝像頭采集物體圖像, 利用圖像識別相關算法進行訓練、標記, 可進行推理來完成對圖像的識別. AHL-EORS主要目標用于嵌入式人工智能入門教學, 試圖把復雜問題簡單化, 利用最小的資源、最清晰的流程體現人工智能中“標記、訓練、推理”的基本知識要素. 同時, 提供完整源碼、編譯及調試環境, 期望達到“學習漢語拼音從啊(a)、喔(o)、鵝(e)開始,學習英語從A、B、C開始, 學習嵌入式人工智能從物體認知系統開始”之目標.

學員可以將測試工程下載到MCU芯片中, 進行0-9十個數字識別, 測試步驟如下:

步驟1. 通電. 電壓為5 V, 可選擇計算機、充電寶等.

步驟2. 測試. 上電后, 正常情況下, 如圖9所示,LCD彩色屏幕會顯示出圖像, 可識別0-9數字.

圖9 LCD彩色屏幕顯示數字3圖像

5 結論與展望

近年來, 由于嵌入式技術的飛速發展和廣泛應用,我國的許多高等院校和職業技術培訓機構也開設了嵌入式系統實驗教學的課程, 使得實驗系統的設計開發成為嵌入式領域教學急需解決的問題. 本文首先介紹所實現的通用嵌入式計算機GEC, 主要解決GEC硬件共性結構及BIOS駐留機制、基于串口的下載與調試方法、GEC開發生態系統等問題, 并提出AHLCH32V307 嵌入式實驗教學解決方案. 基于RISC-V 架構的高性價比教學實驗系統通過合理應用資源搭建性價比高的系統平臺, 在這一平臺上編寫大量教學性實驗. 這些實驗針對性強, 層次清晰, 易于學習并進行二次開發.

實驗教學是本文最重要的設計部分, 配套開發與硬件模塊結合緊密的兩個層次實驗, 第1個層次是外接傳感器及執行部件編程方法的教學實驗. 第2個層次嵌入式人工智能簡明實例. 接下來的研究工作是基于套件開發更多貼近現實生活中的物聯網應用. 如此既能推廣RISC-V處理器的技術, 又能增加學員的學習興趣. 甚至適用于GEC SoC芯片的加密方法來提高數據傳輸的安全性, 也是有價值的研究方向 .

猜你喜歡
嵌入式人工智能系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
2019:人工智能
商界(2019年12期)2019-01-03 06:59:05
人工智能與就業
IT經理世界(2018年20期)2018-10-24 02:38:24
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
數讀人工智能
小康(2017年16期)2017-06-07 09:00:59
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
下一幕,人工智能!
南風窗(2016年19期)2016-09-21 16:51:29
主站蜘蛛池模板: 九一九色国产| 国产精品林美惠子在线观看| 国产裸舞福利在线视频合集| 亚洲国产成人自拍| 国产精品美人久久久久久AV| 国产亚洲高清在线精品99| 狠狠色综合网| 69av在线| 久久亚洲美女精品国产精品| 日韩一级二级三级| 91美女视频在线| 亚洲日产2021三区在线| 日韩av在线直播| 幺女国产一级毛片| 日韩欧美视频第一区在线观看| 日本亚洲欧美在线| 国产99在线| 69av免费视频| 98精品全国免费观看视频| 亚洲成人动漫在线观看| 国产欧美另类| 一级毛片在线直接观看| 四虎永久在线精品国产免费| 国产视频自拍一区| 国产午夜福利片在线观看| 成人精品午夜福利在线播放| 亚洲天堂色色人体| 国产黄网永久免费| 精品亚洲欧美中文字幕在线看 | 国产成人无码AV在线播放动漫| 亚洲午夜福利在线| 国产精品偷伦在线观看| 午夜不卡视频| 国产后式a一视频| 精品国产免费观看一区| 大陆国产精品视频| 色婷婷天天综合在线| 亚洲va视频| 欧美日韩导航| 国产精品尹人在线观看| 欧美亚洲激情| 国产在线一二三区| 国产小视频免费| 久久中文电影| 国产精品视频久| 18黑白丝水手服自慰喷水网站| 亚洲成AV人手机在线观看网站| 无码AV日韩一二三区| 素人激情视频福利| 国产人妖视频一区在线观看| 色综合激情网| 午夜福利在线观看成人| 欧美日韩国产在线人成app| 午夜少妇精品视频小电影| 国产日韩久久久久无码精品| 久久永久免费人妻精品| 欧美在线三级| 超碰精品无码一区二区| 国产激情无码一区二区免费| 免费国产小视频在线观看| 日本欧美中文字幕精品亚洲| 四虎永久免费网站| 欧美午夜视频| 91极品美女高潮叫床在线观看| 国产91九色在线播放| h视频在线播放| 蝴蝶伊人久久中文娱乐网| 亚洲第一成年人网站| 伊人精品视频免费在线| 成AV人片一区二区三区久久| 国产老女人精品免费视频| 首页亚洲国产丝袜长腿综合| 国产青榴视频| 日本a∨在线观看| 国产精品久久国产精麻豆99网站| 国产在线98福利播放视频免费 | 色欲色欲久久综合网| 无码丝袜人妻| 欧美在线视频a| 国产精品99r8在线观看| 91精品伊人久久大香线蕉| 国产欧美专区在线观看|