傳統工程實現大多采取單一的點對點通信,相互之間少有聯系,導致復雜的布局布線。據統計,某型設備布局布線長度達2 000 m,電氣節點達1 500個。無論從工程成本還是工程實現看,傳統實現方法亟待改進。
CAN(Controller Area Network)也稱控制器局域網,是國際上應用最廣泛的現場總線之一。CAN總線是一種多主串行通信總線,支持分布式實時控制,其為多主工作方式,通信方式靈活,且無需站地址等節點信息。采用無損仲裁技術,當多個節點同時向總線發送信息時,優先級低的節點主動退出發送,最高優先級的節點不受影響繼續傳輸數據,節省了總線沖突的仲裁時間。
本文設計了一種基于CAN總線接口的健康管理方案,有效解決了傳統工程點對點通信的弊端。通過描述本系統總體架構、硬件方案和軟件方案,最后給出了仿真與分析結果,證明了本系統的可行性、經濟性和工程應用性。
1總體架構
本系統由某型CK520內核主控處理器、兩顆單片機GD32VF103、高速光電耦合器、總線接口電路、溫度傳感器、SPI Flash芯片和PC機組成。主控處理器通過異步串口與測試計算機連接,同時主控處理器通過異步串口與主/備兩顆CAN總線協議處理器連接,測試計算機上可查看系統的狀態信息,也可通過其對單片機進行軟件升級等。總體結構如圖1所示。
圖1 總體架構
2硬件方案
本系統采用兩顆芯片實現主/備健康管理方案。由主控芯片控制兩顆單片機的狀態,通過異步串口連接,對外健康管理接口為CAN接口。其中健康管理系統基于兩顆RISC-V芯片GD32VF103,實現主/備功能,確保主CAN接口總線功能異常后,備份CAN接口總線能夠正常工作。主要由主控單元、主健康管理單元、備健康管理單元、芯片間通信單元和軟件升級加載單元組成。硬件設計框圖如圖2所示。
圖2 硬件設計框圖
2.1主控單元
主控單元負責主/備CAN總線處理器的信息同步、軟件加載的控制等。該部分實現Ymodem協議、與主CAN總線處理器的交互協議、與備CAN總線處理器的交互協議。Ymodem協議是一個文本傳輸協議,常用于在線軟件升級加載。
2.2主健康管理單元
主健康管理單元是用于本系統與外部進行數據交互的主要通道。本設計選用兆易創新的GD32VF103實現健康管理功能,并且完成對系統的溫度值采樣。溫度傳感器選用國產的CT75MMR,這是一款精度在±0.5 ℃的溫度傳感器,溫度值可直接通過I2C接口讀取。測量的溫度范圍為-40~+125 ℃,靜態電流僅為1.5 μA,最大電流為10 μA。
本文選用低成本的GD32VF103RB芯片,該芯片基于RISC-V處理器的32位通用微控制器。RISC-V處理器包括3條AHB總線,分別稱為I-CODE總線、D-Code總線和系統總線。RISC-V處理器適用于低能耗、小面積的嵌入式應用,具有簡單的動態分支預測、指令預取緩沖區和本地內存等多種高效微架構特點。
該芯片提供了108 MHz的運算主頻,以及高達128 KB的片上閃存和32 KB的SRAM緩存,采用2.6~3.6 V供電,I/O可承受5 V電壓,擁有多達4個16位通用定時器、2個16位基本定時器和2個多通道DMA控制器,包括3個USART、2個UART、3個SPI、2個I2C、2個I2S、2個CAN2.0B和1個USB2.0,以及外部總線擴展控制器,集成了2個采樣率高達2.6 Msps的12位高速ADC,提供了多達16個可復用通道,并支持16位硬件過采樣濾波功能和分辨率可配置功能,還擁有2個12位DAC,多達80%的GPIO具有多種可選功能,還支持端口重映射。
高速光電耦合器采用GaAsAl紅外發光二極管與單片集成高速光探測器相耦合。光電耦合器輸入側電信號使發光源發光,光的強度取決于激勵電流的大小,當光照到受光器后,因光電效應產生光電流,由受光器輸出,這樣就實現了電-光-電的轉換。
總線接口電路是一款低電壓CAN總線收發器,其作為CAN總線的物理層芯片,滿足ISO 11898標準規定。該收發器提供差分發送和接收能力,其傳輸速率達到1 Mbps,3.3 V供電電壓,低功耗設計;高輸入阻抗,最多允許接入120個節點;兼容ISO11898 CAN總線標準;傳輸速率最高可達1 Mb/s;片內集成過溫保護,支持熱插拔。
2.3備健康管理單元
備健康管理單元用于本系統與外部進行數據交互的備份通道,同時完成對系統的電壓值采樣,通過單片機自帶的ADC接口功能完成。
3軟件方案
本系統軟件設計采用典型嵌入式軟件設計層次,先實現各芯片內、外設驅動,再實現上述協議規范,最后業務邏輯調度相關API實現完整功能。軟件設計遵循以下原則:層與層之間不能跨層調用;模塊與模塊之間各自獨立,無依賴關系;模塊提供統一的接口供上層調用,模塊的內、外接口分明。軟件架構如圖3所示。
圖3 軟件架構
3.1模塊分層
本系統軟件設計采用模塊化設計,盡量降低各個軟件模塊的專用性及模塊之間的耦合性,提高軟件模塊的獨立性和可繼承性。
3.1.1硬件驅動層
硬件驅動層主要與底層接口建立傳輸通道,在本系統中,包含CAN總線接口、UART接口、I2C接口和ADC接口。驅動層函數功能如表1所列。溫度傳感器接口函數功能如表2所列。電壓值接口函數功能如表3所列。
表1 驅動層函數簡介
表2 溫度傳感器接口函數簡介
表3 電壓值接口函數簡介
3.1.2功能模塊層
功能模塊層主要完成各個接口數據幀的拆幀解析與組幀發送。函數簡介如表4所列。
表4 模塊層函數簡介
3.1.3業務邏輯層
業務邏輯層是本文系統的核心,完成各個功能任務。函數簡簡介如表5所列。
表5 邏輯層函數簡介
3.2軟件設計
本系統通過Keil5軟件和CDS軟件對系統功能軟件進行編譯調試,設計主要分為Ymodem功能軟件、CAN功能軟件和芯片管理功能軟件。
Ymodem功能軟件主要完成對本系統的軟件文件升級加載,包含傳輸數據收發、處理和傳輸協議解析;CAN功能軟件主要完成對外提供健康管理信息,包含CAN數據收發、處理和CAN協議解析,為軟件設計的關鍵和核心;芯片管理功能軟件主要完成各個芯片間狀態信息同步及軟件文件的傳輸控制,包含管理數據收發、解析和處理。
3.2.1Ymodem功能軟件設計
Ymodem功能軟件主要實現待升級HEX文件的傳輸,主控處理器根據文件名稱將文件傳輸至對應的單片機,完成對其軟件文件的加載升級。其數據幀格式如表6所列。
表6 Ymodem數據幀格式
升級流程如下:
①先搜索起始幀,校驗正確后進行文件名判斷,若文件名為0001,則表示本地升級文件處理;若文件名為0002,則表示單片機1升級文件處理;若文件名為0003,則表示單片機2升級文件處理。
②繼續搜索數據幀,校驗正確后,根據上一步流程中的處理分支將數據送到對應芯片進行存儲處理。
③搜索到結束幀后即表示升級流程結束。
通過該軟件功能,可方便地對各個功能芯片進行軟件升級,便于后期項目維護。
3.2.2CAN功能軟件設計
CAN功能軟件為本系統軟件設計的關鍵和核心。本設計參照CAN2.0B規范(即ISO 11898),該規范規定了CAN總線網絡設計特殊需求,CAN總線接口劃分為應用層、數據鏈路層和物理層[4]。物理層主要實現bit流編解碼、bit位定時和同步,以及物理連接接口。數據鏈路層主要實現用戶數據分幀和組幀,數據幀編碼、總線仲裁和訪問控制、錯誤檢測和通告、應答等。應用層主要處理用戶業務相關數據。應用層數據幀格式如表7所列。
表7 CAN接口數據幀格式
(1)發送流程
應用層軟件有數據需要發送時,調用數據鏈層發送接口函數,將數據寫入發送緩沖區。鏈路層根據數據個數判斷是否需要分幀,若大于8,則按8字節進行分幀,最后一幀為結束幀,其余幀為中間幀,然后按照幀格式組成鏈路層報文,驅動總線控制器將數據發送到總線上。
(2)接收流程
在接收端,總線數據進入總線控制器輸出鏈路層數據報文,鏈路層對數據幀進行解析,完成以下操作:若收到的字節數小于待解析報文長度,表示還有后續數據幀待接收,則根據DLC字段值提取相應個數的應用數據依次存入接收數據緩存區,等待接收下一幀;若收到的字節數等于待解析報文長度,表示數據報文接收完畢,則根據DLC字段值提取相應個數的應用數據,存入接收數據緩存區,推送給應用層處理。
3.2.3芯片管理功能軟件設計
芯片與芯片間通信采用slip幀格式,數據幀格式如表8所示。
表8 SLIP數據幀格式
在組織slip幀時,在每一個基本數據幀的首尾各加上一個端字符(0xC0),封裝成slip幀。在發送的slip數據幀中,與端字符(0xC0)相同的數據用轉義字符加替代字符(0xDBDC)代替,與轉義字符(0xDB)相同的數據用轉義字符加轉義替代字符(0xDBDD)代替。在接收方,對slip數據幀中的數據作相反的替代處理,即將“0xDBDC”替換為“0xC0”,將“0xDBDD”替換為“0xDB”。
4系統仿真與分析
完成健康管理系統軟硬件設計后,需要對本系統進行測試。系統測試前,首先對各部分硬件進行檢查調試,確保硬件正確后,將編譯完成的軟件執行碼通過Keil5軟件和CDS軟件下載到系統。最后通過上位機軟件或者分析儀對相關接口數據進行仿真和分析。
4.1Ymodem功能仿真
為了測試該功能,將測試計算機與主控處理器的異步串口連接,打開計算機上安裝的SecureCRT軟件,然后操作該軟件使用Ymodem功能發送待升級文件,如圖4所示。
圖4 Ymodem發送界面
待軟件文件升級完成后,重啟設備可查看軟件文件升級成功。
4.2CAN功能仿真
為測試該功能,通過CAN總線分析儀測試其收發數據,將測試計算機與CAN總線分析儀連接,打開計算機上安裝的分析儀CANTest軟件,然后將分析儀上的CAN總線接口與本系統對外CAN接口連接進行測試。結合CAN接口數據幀格式分析,單片機CAN接口能夠正確收發協議幀數據。
4.3芯片管理功能仿真
為測試該功能,將測試計算機與主控處理器的異步串口連接,打開計算機上安裝的SecureCRT軟件,每次本系統上電后查看打印信息,如圖5所示。
圖5 軟件信息界面
從圖5中可知,主控處理器可正確獲取各個芯片上的狀態信息,因而芯片管理功能正常。
5結 語
本文提出了一種低成本的基于CAN總線接口的健康管理系統設計,給出了總體架構設計,并且對該設計的軟硬件方案進行了詳細描述,最后對整個系統進行了仿真和分析。另外,主備CAN接口的設計有效地提升了系統的可靠性,從經濟性和實用性方面考慮,均有明顯優勢。
(本文由《單片機與嵌入式系統應用》雜志授權發表,原文刊發在2023年第11期)
-
處理器
+關注
關注
68文章
19259瀏覽量
229652 -
單片機
+關注
關注
6035文章
44554瀏覽量
634651 -
CAN總線
+關注
關注
145文章
1946瀏覽量
130727 -
總線接口
+關注
關注
0文章
82瀏覽量
30730 -
健康管理系統
+關注
關注
0文章
6瀏覽量
1193
原文標題:國產化 RISC-V芯片的健康管理工程設計及實踐
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論