基于CAN總線的智能車的設計與實現(xiàn)
3 CAN節(jié)點軟件設計
3.1 CAN總線通信數(shù)據(jù)格式
CAN協(xié)議通信格式中有數(shù)據(jù)幀、遠程幀、出錯幀和超載幀4種幀格式。其中,數(shù)據(jù)幀和遠程幀的發(fā)送需要在CPU控制下進行,而出錯幀和超載幀的發(fā)送則是在錯誤發(fā)生和超載發(fā)生時自動進行的。一個有效的CAN的數(shù)據(jù)幀由起始幀、仲裁域、控制域、數(shù)據(jù)域、應答域和結束幀組成。一幀信息除仲裁域、控制域和數(shù)據(jù)域外,其他信息都是CAN控制器發(fā)送數(shù)據(jù)時自動加上去的,而仲裁域、控制域和數(shù)據(jù)域則必須由CPU給出。TMS320F2812的CAN控制器支持標準格式和擴展格式兩種不同的幀格式,本設計采用標準格式。標識符作為報文的名稱,在仲裁過程期間,它首先被發(fā)送到總線,在接收器的驗收判斷中和仲裁過程確定訪問優(yōu)先權中都要用到。遠程發(fā)送請求位RTR決定發(fā)送的是遠程幀還是數(shù)據(jù)幀。數(shù)據(jù)長度碼DLC用來確定每幀發(fā)送幾個字節(jié)的數(shù)據(jù),最多8 B。SJA1000可以工作在標準CAN模式和增強型CAN模式兩種模式。標準CAN模式提供11 bit標識符的識別,而增強型CAN模式支持29 bit標識符識別。本設計選擇SJA1000工作在標準CAN模式,與DSP的CAN模塊選擇的數(shù)據(jù)格式相吻合。
3.2 SST89E564RD軟件設計
SST89E564RD軟件的設計是在KeilC下完成的,主要由初始化模塊、采集模塊和通信模塊組成。
(1)初始化模塊。單片機在SJA1000的復位模式下完成對CAN控制器的初始化,向其控制寄存器寫入控制字,確定CAN控制器的工作方式。
(2)采集模塊。攝像頭傳感器采集到的信息經(jīng)信號調理電路處理后傳輸?shù)絾纹瑱C,單片機采用圖像濾波算法對所有信息進行預處理。
(3)通信模塊。把采集模塊處理完的信息通過CAN總線與其他節(jié)點進行信息交互。
3.3 TMS320F2812軟件設計
TMS320F2812的eCAN模塊主要由CAN協(xié)議內(nèi)核和消息控制器構成。協(xié)議內(nèi)核主要完成消息解碼并向接收緩沖器發(fā)送解碼后的消息,同時根據(jù)CAN協(xié)議向總線發(fā)送消息,消息控制器決定對接收到的消息的取舍。TMS320F2812軟件主要由初始化模塊、通信模塊和驅動模塊組成。
(1)初始化模塊。其完成對CAN控制層中的寄存器進行初始化,包括時鐘使能、引腳定義、波特率的設定和收發(fā)郵箱的配置等。初始化模塊流程圖如圖4所示。
(2)通信模塊。它包括報文發(fā)送模塊、報文接收模塊和CAN出錯管理模塊。
(3)驅動模塊。它包括轉向控制模塊和速度控制模塊。由于智能車處于彎道和直道的轉向模型不同,本系統(tǒng)在轉向控制模塊中采用了分段比例控制算法,而對智能車速度的調整既要快速又要準確,還不能頻繁波動,本系統(tǒng)在速度控制模塊中采用了PID控制算法。
系統(tǒng)采用SST89E564RD微處理器實時采集道路信息,采用TMS320F2812進行數(shù)據(jù)的綜合處理,輸出相應命令給執(zhí)行機構,所有數(shù)據(jù)通過CAN總線交互,方便功能拓展。通過模擬測試和大量環(huán)境試驗,以及對記錄、實時檢測、數(shù)據(jù)分析的整理,該智能車目前運行可靠。后續(xù)將增添無線模塊節(jié)點,為該智能車添加遙控功能。本文引用地址:http://www.ex-cimer.com/article/196396.htm
評論