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