李寧 李剛 劉賽
摘 要:針對電動方程式賽車控制系統研發,論文進行符合大賽規則要求的整車控制系統通信協議設計。根據電動方程式大賽規則中的相關設計要求,結合實車電氣系統架構和無線數據采集的功能需求,確定采用整車采用CAN通信和UART通信方式相結合的方式,對UART通信協議進行完全自主設計,并基于兩者協議進行了程序開發。關鍵詞:電動方程式賽車;控制系統;通信協議;程序中圖分類號:U469.6+96 ?文獻標識碼:A ?文章編號:1671-7988(2020)08-27-04
Abstract:?Liaoning University of technology electric motorcade independently researched and developed the communica?-tion scheme of vehicle control system by carefully reading the relevant design requirements in FSEC competition rules and centering on the innovative concept. The whole vehicle adopts CAN communication and UART communication mode, and the program is developed based on the two protocols, in which the UART communication protocol is designed independently according to the actual situation of the vehicle. These laid a good foundation for the later development of the program and the debugging of the real vehicle.Keywords: Electric formula car; Control system; Communication protocol; ProgramCLC NO.: U469.6+96 ?Document Code: A ?Article ID:?1671-7988(2020)08-27-04
1 引言
大學生方程式大賽被稱為是汽車工程師培養的搖籃[1],中國大學生電動方程式大賽(FSEC)旨在為中國新能源汽車領域培養優秀汽車工程技術人才。賽前車隊通常需要8到12個月的時間設計、制造、測試和準備賽車[2]。在與來自全國各地的大學代表隊的交流與切磋中,賽事將會給了車隊證明與展示其創造力和工程技術能力的機會。電動賽車整車控制系統是其關鍵組成部分,而合理的通信協議方案是保證控制系統安全可靠工作的重要內容[3-5]。論文針對大學電動方程式賽車控制系統開發,根據實車控制和無線數據采集需要,以及大賽規則進行整車控制系統通信架構和通信協議設計[6]。
2 通信方式
實車開發除了進行執行器控制外,還有對實車傳感器如橫擺角速度、方向盤轉角傳感器等信號進行實時數據無線采集,因此確定了整車采用CAN通信方式和UART通信方式,設計相應架構。
2.1 賽車CAN網絡構架
CAN通信是目前應用最為廣泛的現場總線之一,具有高性能、可靠的優點,常常應用于汽車、船舶以及航空領域,其英文是Controller Area Network,控制局域網絡的意思[7]。CAN總線系統是多機系統,最高的傳輸速率能達到1Mbit/?sec,其短幀結構每條報文最多能夠有8字節數據。CAN總線具有錯誤檢測與處理機制,且能夠實現數據校驗,幀內應答,廣播發送等。在CAN總線上傳輸的數據報文不包含發送節點和接收節點的信息,每個報文的內容通過標識符(ID)識別,每個標識符在網絡中都是唯一的,標識符描述了數據的含義也決定了優先級。網絡中的數據報文可以被所有節點接收,也可以進行報文過濾。
賽車CAN網絡中的節點主要是各個控制單元:整車控制器RapidECU、兩臺電機控制器、儀表控制單元,還有兩個傳感器作為網絡節點:橫擺角速度傳感器以及方向盤轉角傳感器。除電池管理系統的通信波特率為250Kbits以外,其余通信波特率統一為500Kbits,所以將BMS與整車控制器RapidECU的另一路CAN收發器進行通信,然后作為整車CAN網絡的一個節點接入。在CAN 總線的兩端分別接入120Ω終端電阻,這樣賽車上的所有CAN通信部件之間就可以進行通信,構成了一個完善的賽車CAN網絡。CAN總線網絡構架如圖1所示。
2.2 賽車UART通信方式構架
串口通信(UART)不但可以實現單片機的數據傳輸到計算機端,而且也能實現計算機對單片機的控制。由于其所需的電纜線少,接線簡單,所以在較遠距離傳輸中,得到了廣泛的認可。串口通信能夠傳輸的最遠距離是50英尺=15m,且可做到雙向傳輸,全雙工通信,最高的傳輸速率可達20kbps。串口通信的參數除了波特率,還有數據位、停止位、奇偶校驗位。數據位的標準值是5、7、8位。停止位用于表示單個數據包的最后一位,典型的值為1、1.5、2位。其實停止位不僅僅表示傳輸的結束,并且提供計算機校正時鐘同步的機會。
UART通信主要是用于賽車的人機交互,通過開發儀表控制單元,將賽車CAN網絡中的信息轉化為串口信號,按照通信協議分別傳送給賽車的儀表和無線數據采集的上位機。良好的人機交互功能會給之后的各部分調試奠定基礎,最終賽車串口通信構架如圖2所示。
3 通信協議設計
通信協議是通信設備在通信前的約定。單片機、計算機有了協議約定,通信雙方才能相互配合,精確地完成各種操作。賽車儀表通信協議中,數據幀架構由幀頭(2個字節)數據長度(1個字節)、指令(1個字節)、數據(n個字節)CRC校驗(2個字節)組成(都以十六進制發送)。協議中的指令只有5條,分別為:寫控制寄存器指令(80),讀控制寄存器指令(81),寫數據存儲區指令(82),讀數據存儲區指令(83),寫曲線緩沖區指令(84)。兩種協議中所涉及的內容整理如表1和表2所示。
由表2可以看出,賽車儀表通信協議中,數據幀架構由幀頭(2個字節)數據長度(1個字節)、指令(1個字節)、數據(n個字節)CRC校驗(2個字節)組成(都以十六進制發送)。協議中的指令只有5條,分別為:
1)寫控制寄存器指令(80)
2)讀控制寄存器指令(81)
3)寫數據存儲區指令(82)
4)讀數據存儲區指令(83)
5)寫曲線緩沖區指令(84)
為了更好的理解,這里以讀0000變量地址里的數值為例:
Request幀:5A??A5??04??83??00??00??01
5A A5:幀頭
04:發送的數據長度(從指令開始到最后的數據長度,即從83指令開始此處共發送4個字節)
83:讀數據存儲區指令
00:變量地址
01:從0000地址開始讀1個字長度數據
Transmit幀:5A ?A5 ?04 ?83 ?00 ?00 ?01 ?00 ?02
4 程序編寫
儀表控制單元的程序與整車控制器的程序一起構成了整車控制程序。儀表控制單元程序的開發,運用了IAR7.4軟件進行C語言程序設計,程序經過試驗可實現功能,部分程序如下:
/*串口函數*/
void UART(void)
{
UART_QuickInit(UART4_RX_PC14_TX_PC15, 115200);//儀表串口初始化
UART_QuickInit(UART1_RX_PC03_TX_PC04, 115200); //無線串口初始化
UART_Meter(HW_UART4,BatVoltage);?//儀表顯示電池電壓
UART_Meter(HW_UART4,BatCurrent);?//儀表顯示電池電流
UART_Meter(HW_UART4,BatSoc); //儀表顯示電池電量
UART_Meter(HW_UART1,MotTargue); //傳送電機轉矩
UART_Meter(HW_UART1,MotRotation); //傳送電機轉速
}
/*CAN函數*/
void CAN(void)
{
CAN_QuickInit(CAN1_TX_PC17_RX_PC16,kCAN_?Bau?-drate_250K); //設置CAN總線波特率
CAN_SetReceiveMB(HW_CAN1, 1, 0x186040F3); //設置CAN接收ID
CAN_SetReceiveMB(HW_CAN1, 8, 0x202);
CAN_ITDMAConfig(HW_CAN1,1,kCAN_IT_RX);?//開啟CAN中斷
CAN_ITDMAConfig(HW_CAN1,8, kCAN_IT_RX);
CAN_CallbackInstall(HW_CAN1, CAN_ISR);//調用CAN接收回調函數
}
/*主函數*/
int main(void)
{
DelayInit();
gpio_Init();
pit();
while(1)
{
if(TimeFlag_100ms == 1)
{
CAN();
UART();
}
}
}
5?結論
在完成電氣系統合理布置工作的基礎上,采用CAN通信和UART通信相結合的方式,對賽車的整車控制系統通信方案進行了設計與開發。賽車網絡與儀表控制單元采用CAN通信方式,無線數采上位機間采用UART通信方式,編寫了整車控制程序,實現了預期控制功能。
參考文獻
[1]中國大學生方程式汽車大賽官方網站:http://www.formulastudent. com.cn/.
[2] 林繼銘,張勇,楊建紅,張鋒,黃身桂.基于大學生方程式汽車大賽的車輛專業教學模式改革[J].教育教學論壇,2019(12):34-36.
[3] 李鵬偉.大學生方程式電動賽車電氣控制系統設計[D].長安大學,2017.
[4] 陳凱琦,彭輝.大學生電動方程式賽車電控安全系統的設計[J].電工技術,2019(12):136-137+139.
[5] 鄭竹安,周玉鼎.大學生電動方程式汽車的安全回路設計[J].鹽城工學院學報(自然科學版),2016,29(03):23-26.
[6] 李理光.中國大學生方程式汽車大賽規則[Z].中國汽車工程學會, 2018.
[7] 張莉.基于CAN總線的通信系統設計研究[J]. 自動化與儀器儀表,2018(4):91-94.