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


汽車CAN總線系統(tǒng)原理、設(shè)計(jì)與應(yīng)用
基于CAN總線的網(wǎng)絡(luò)監(jiān)控系統(tǒng)
基于DSP的CAN總線接口設(shè)計(jì)

基于CAN總線的鎳氫電池管理系統(tǒng)設(shè)計(jì)
CAN總線與RS-485總線的通信接口設(shè)計(jì)

CAN總線接口電路設(shè)計(jì)

CAN總線接口電路的硬件設(shè)計(jì)
基于CAN總線接口卡的軟件設(shè)計(jì)
如何使用FPGA和CAN控制器MCP2515實(shí)現(xiàn)慣導(dǎo)系統(tǒng)的CAN總線接口的設(shè)計(jì)

評(píng)論