基于DSP的CAN總線(xiàn)接口設計
控制器局部網(wǎng)絡(luò )(CAN ControllerAreaNetwork)是德國B(niǎo)osch公司從20世紀80年代初為解決現代汽車(chē)中眾多的控制與測試儀器之間的數據交換而開(kāi)發(fā)的一種串行數據通訊協(xié)議。1991年9月PHILIPS公司制定并頒布了CAN2.0技術(shù)規范;1993年11月國際標準化組織(ISO)正式頒布了關(guān)于CAN總線(xiàn)的ISO11898標準 ,為CAN總線(xiàn)的標準化、規范化應用鋪平了道路。
世界各半導體廠(chǎng)商推出了許多CAN總線(xiàn)產(chǎn)品。一類(lèi)是專(zhuān)用的CAN控制器芯片,如Intel公司的82526,82527;PHILIP公司的82C200,SJA1000;NEC公司的72005等;另一類(lèi)是嵌入CAN接口的單片機,如Intel公司的87C196CA/CB;PHILIP公司的80C592,80CE598;Motorola公司的68HC05X4,68HC05X16,TI公司的TMS320F240x系列DSP等。
CAN總線(xiàn)具有如下特點(diǎn):
1)結構簡(jiǎn)單,通信介質(zhì)可是雙絞線(xiàn)、同軸電纜或光纖;
2)通信方式靈活??梢远嘀鲝姆绞焦ぷ?,可以點(diǎn)對點(diǎn)、點(diǎn)對多點(diǎn)及全局廣播方式發(fā)送和接收數據;
3)采用短幀通訊格式,保證了實(shí)時(shí)性和可靠性,可滿(mǎn)足一般工業(yè)應用;
4)非破壞總線(xiàn)仲裁技術(shù),具有多優(yōu)先級;
5)集成了CAN協(xié)議的物理層和數據鏈路層功能,可完成對通訊數據的成幀處理工作。
CAN總線(xiàn)具有良好功能特性和極高的可靠性,現場(chǎng)抗干擾能力強。廣泛應用于工業(yè)測控領(lǐng)域。
2.CAN總線(xiàn)接口的硬件設計
圖1 CAN總線(xiàn)接口電路
硬件設計使用了TI公司的TMS320LF2407A的DSP芯片,其CAN總線(xiàn)接口的硬件電路如圖1所示。一般在CAN控制器和物理總線(xiàn)間采用82C250驅動(dòng)芯片,提供對總線(xiàn)的差動(dòng)發(fā)送和接收功能。但是因為82C250為5V供電,而F2407采用3.3V供電,兩芯片間需要電平轉換電路。我們選用了只需3.3V供電的CAN總線(xiàn)收發(fā)驅動(dòng)芯片SN65HVD230。
F2407的內部集成有CAN控制器。該控制器是一個(gè)16位的外設模塊,支持CAN2.0B協(xié)議,具有6個(gè)8字節郵箱;具有可編程的中斷配置、總線(xiàn)喚醒功能,以及自動(dòng)回復、自動(dòng)重發(fā)、錯誤診斷等功能。CAN模塊的結構框圖如圖2所示。
圖2 CAN控制器結構框圖
訪(fǎng)問(wèn)CAN模塊可分為控制/狀態(tài)寄存器和6個(gè)郵箱的訪(fǎng)問(wèn)。CAN控制器總共有15個(gè)16位的控制寄存器,控制著(zhù)位定時(shí)器、郵箱的發(fā)送或接收使能、錯誤狀態(tài)及CAN中斷等。郵箱位于一個(gè)48×16位的RAM空間,每個(gè)郵箱由郵箱標示寄存器、郵箱控制寄存器及存儲空間組成,最大可存儲8字節數據。
3.CAN總線(xiàn)接口的程序設計
CAN的通訊采用短幀格式。每個(gè)數據幀由幀起始、仲裁域、控制域、數據域、校驗域、應答域和幀結束組成。F2407支持標準幀格式和擴展幀格式,如圖3所示。標識符是作為報文的名稱(chēng),在接收器的驗收判斷和仲裁過(guò)程確定訪(fǎng)問(wèn)優(yōu)先權中使用;遠程發(fā)送請求位(RTR)確定發(fā)送遠程幀還是數據幀;數據長(cháng)度碼(DLC)確定每幀發(fā)送幾個(gè)字節數據。
圖3 CAN信息幀
在使用CAN控制器前必須對它的一些內部寄存器進(jìn)行設置。如流程圖4和流程圖5所示,需配置位定時(shí)器和初始化郵箱。位定時(shí)器的BCR1和BCR2寄存器決定了CAN控制器的通信波特率、同步跳轉寬度、采樣次數和重同步方式。郵箱初始化需設置郵箱的標識符,發(fā)送的是遠程幀還是數據幀及對發(fā)送的數據區賦初值。這樣,郵箱就能進(jìn)行正常的發(fā)送和接收工作了。
評論