MC微控器在汽車(chē)CAN/LIN網(wǎng)關(guān)中的應用
以接收 CAN 報文幀為例說(shuō)明一下GZ32 CAN/LIN 網(wǎng)關(guān)工作流程:
DDRC_DDRC1=0; //CAN RX 使能
DDRC_DDRC0=1; //CAN TX 使能
re_id0=REC_IDR0;
re_id1=REC_IDR1; //讀ID 標識符寄存器
temp0=REC_DSR0;
temp1=REC_DSR1;
temp2=REC_DSR2; //讀數據段寄存器
… …
re_dlr=REC_DLR; //讀數據長(cháng)度寄存器
當 GZ32 CAN/LIN網(wǎng)關(guān)接收到CAN報文幀后,根據所接收到的標識符及數據段寄存器,就可以對左前組合燈以及后組合燈模塊進(jìn)行正確控制。同時(shí),網(wǎng)關(guān)還可以將各燈的狀態(tài)等信息發(fā)送給CAN 總線(xiàn)。
3.3 LIN 報文的接收和發(fā)送
當 GZ32 CAN/LIN 網(wǎng)關(guān)接收到CAN 報文并對其進(jìn)行正確解析后,將通過(guò)增強型串行通信ESCI 模塊向LIN 總線(xiàn)發(fā)送LIN 報文幀,本設計使用TJA1020 LIN 收發(fā)器加以實(shí)現。這樣LIN 總線(xiàn)上的各從機模塊,如車(chē)門(mén)模塊(包括門(mén)鎖電機、雨刮電機、后視鏡等)、后組合燈模塊,通過(guò)ID 識別可以正確的接收LIN 報文并加以控制。同理,各模塊亦可將各自的狀態(tài)等信息反饋給LIN 總線(xiàn),并通過(guò)TJA1020 反饋給CAN/LIN 網(wǎng)關(guān),如圖3 所示。
以發(fā)送LIN 報文幀為例說(shuō)明一下GZ32 CAN/LIN 網(wǎng)關(guān)工作流程:
DDRE_DDRE0=1; //TXD 使能
DDRE_DDRE1=0; //RXD 使能
SCBR=0xC0; //LINT 和LINR 使能
SCPSC=0xB0; //設置波特率為9.6K
SCC1=0x40; //ESCI 使能
SCC2=0x0C; //TE 和RE 使能
SCC3=0x00;
transmit_data[0]=0x55;
transmit_data[1]=ID;
transmit_data[2]=REC_DSR0;
transmit_data[3]=REC_DSR1;
… … //發(fā)送LIN 數據場(chǎng)及校驗和場(chǎng)
4 調試過(guò)程及結論
本文針對 MC68HC908GZ32 微控制器在汽車(chē)CAN/LIN 網(wǎng)關(guān)中的應用,給出了具體的硬件設計方案及控制軟件,并最終加以了調試。在調試過(guò)程中遇到一些問(wèn)題,并最終得到解決。比較典型的問(wèn)題及解決方法如下:
(1)網(wǎng)關(guān)無(wú)法正確接收CAN 報文:網(wǎng)關(guān)若想正確收發(fā)CAN 報文,波特率配置與高低速CAN 網(wǎng)關(guān)之差一定要在CAN 協(xié)議允許的范圍之內。同理,網(wǎng)關(guān)發(fā)送LIN 報文的波特率與LIN 從節點(diǎn)的波特率也要符合LIN 協(xié)議規定,否則容易產(chǎn)生無(wú)法接收報文或接收到錯誤報文的現象。
(2)網(wǎng)關(guān)能發(fā)送LIN 報文但總線(xiàn)上無(wú)信號:LIN 收發(fā)器TJA1020 的NSLP 引腳為高電平時(shí),方可啟動(dòng)發(fā)送器,因此須將PTE2 引腳置為輸出腳,且端口置為隱性狀態(tài)。本文作者創(chuàng )新點(diǎn):以Freescale公司8位微處理器MC68HC908GZ32為主芯片,對其在汽車(chē)CAN/LIN網(wǎng)絡(luò )中的應用加以了設計。給出了車(chē)身網(wǎng)絡(luò )結構圖、CAN/LIN網(wǎng)關(guān)電路設計圖、報文收發(fā)流程以及調試過(guò)程中對所遇到的問(wèn)題的解決方法等。經(jīng)調試結果表明該GZ32 CAN/LIN網(wǎng)關(guān)具有結構簡(jiǎn)單、性能穩定、實(shí)用性強等特點(diǎn)。
評論