摘要:介紹了一種基于DSP的CAN控制器和USB芯片的USB總線和CAN總線的通信模塊的設(shè)計(jì),提出了一種使用USB接口實(shí)現(xiàn)CAN總線網(wǎng)絡(luò)與計(jì)算機(jī)連接的方案。利用USB100芯片可在不了解任何USB協(xié)議的情況下,完成計(jì)算機(jī)RS 232串口升級(jí)為USB接口,同時(shí)CAN接口采用DSP片上CAN控制器,硬件設(shè)計(jì)極為簡(jiǎn)單。在DSP的控制下,PC機(jī)與CAN節(jié)點(diǎn)可以雙向通信,通信波特率可高達(dá)1 Mb/s,傳輸數(shù)據(jù)穩(wěn)定,可靠。實(shí)驗(yàn)證明,運(yùn)用TMS320F2812片上eCAN模塊來(lái)構(gòu)成CAN總線通信系統(tǒng)更為簡(jiǎn)單,實(shí)用。
0 引言
隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,全電子的計(jì)算機(jī)連鎖控制系統(tǒng)由上位機(jī),聯(lián)鎖機(jī)和智能執(zhí)行單元三層結(jié)構(gòu)組成。本文所介紹的模塊正是在此背景下為數(shù)據(jù)通信進(jìn)行服務(wù)的。CAN總線是目前為止唯一有國(guó)際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線,由于采用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),與一般的通信總線相比,它的數(shù)據(jù)通信具有突出的可靠性,實(shí)時(shí)性和靈活性,其應(yīng)用范圍目前已不再局限于最初的汽車(chē)行業(yè),而擴(kuò)展到了機(jī)械工業(yè)包括數(shù)控機(jī)床,醫(yī)療器械,家用電器等領(lǐng)域。USB接口速度快、連線簡(jiǎn)單和即插即用的特性是與上位機(jī)通訊非常好的外設(shè)接口。因此,基于USB接口實(shí)現(xiàn)CAN總線與PC機(jī)之間數(shù)據(jù)通信的研究具有一定的應(yīng)用意義。
1 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)主要是由USB接口和CAN接口等模塊組成,其中微處理器TMS320F2812控制全局,實(shí)現(xiàn)通過(guò)USB接口將CAN總線數(shù)據(jù)傳送給PC機(jī),以及通過(guò)USB接口將PC機(jī)數(shù)據(jù)傳送給CAN節(jié)點(diǎn)的雙向通信功能。傳統(tǒng)的CAN總線通信模塊一般要用到獨(dú)立的CAN控制器芯片,本系統(tǒng)微處理器F2812片上帶有eCAN模塊,設(shè)計(jì)時(shí)較為方便,下面簡(jiǎn)要介紹eCAN模塊。
eCAN模塊是TMS320F2812 DSP片上的增強(qiáng)型CAN控制器,其性能較之已有的DSP內(nèi)嵌CAN控制器有較大的提高,數(shù)據(jù)傳輸更加靈活方便,數(shù)據(jù)量更大、可靠性更高、功能更加完備。eCAN模塊它完全兼容CAN2.0B協(xié)議,可以在有干擾的環(huán)境里使用上述協(xié)議與其他控制器串行通信。除具有一般DSP內(nèi)嵌CAN控制器的所有功能外,與TMS320LF240x系列DSP的CAN模塊相比,它主要具有如下的一些增強(qiáng)特性:增加了郵箱數(shù)量,多達(dá)32個(gè);eCAN是一個(gè)32位的高級(jí)CAN控制器;具有時(shí)間標(biāo)識(shí);具有超時(shí)功能。
以上這些增強(qiáng)特性使得TMS320F2812進(jìn)行CAN通信時(shí),傳輸更加方便靈活、數(shù)據(jù)量更大、功能更完備。圖1為系統(tǒng)結(jié)構(gòu)圖。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 USB模塊的硬件設(shè)計(jì)
本系統(tǒng)USB接口模塊采用USB100模塊作為主控芯片。USB100模塊是USB通用設(shè)備接口芯片,具有8位數(shù)據(jù)總線接口,內(nèi)部多達(dá)384 B的發(fā)送緩沖區(qū)和128 B的接收緩沖區(qū),數(shù)據(jù)通信速率最高可達(dá)8 Mb/s,USB100模塊讀寫(xiě)數(shù)據(jù)分別由RD和WR2個(gè)引腳控制,相當(dāng)于有讀寫(xiě)2個(gè)地址,因此將這兩個(gè)地址映射到F2812外設(shè)接口的區(qū)域xzcs01中,0x2000作為寫(xiě)地址,0x4000作為讀地址,通過(guò)XA13,XA14,XZCS01,XWE,XRD5個(gè)管腳進(jìn)行譯碼,即可方便地控制USB模塊的數(shù)據(jù)收發(fā)。選用altera公司的CPLD芯片EPM7032作為譯碼器件,可以進(jìn)行在系統(tǒng)編程操作,其中上述5個(gè)管腳作為CPLD的輸入引腳,CPLD2個(gè)輸出引腳分別接至USB100模塊的RD和WR兩個(gè)引腳。由于USB100模塊是5 V供電,F(xiàn)2812是3.3 V供電,所以8位數(shù)據(jù)總線通過(guò)電平轉(zhuǎn)換器件741vc4245相連,數(shù)據(jù)方向由F2812的XR/W控制。根據(jù)USB100模塊時(shí)序圖,當(dāng)F2812檢測(cè)到USB100模塊TXE引腳為低時(shí),表示內(nèi)部發(fā)送緩沖區(qū)允許發(fā)送數(shù)據(jù)到USB端口,可以將數(shù)據(jù)通過(guò)八位總線發(fā)給USB100模塊;當(dāng)F2812檢測(cè)到USB100模塊RXF為低時(shí),表示內(nèi)部發(fā)送緩沖區(qū)有來(lái)自USB端口的數(shù)據(jù)。
2.2 eCAN模塊應(yīng)用設(shè)計(jì)
由于采用TMS320F2812片上增強(qiáng)型控制器eCAN,所以CAN模塊硬件電路極為簡(jiǎn)單,只需將F2812的RX和TX引腳經(jīng)過(guò)電平轉(zhuǎn)換器件連接至CAN收發(fā)器PCA82C250的TXD和RXD引腳,并以F2812作為CAN總線系統(tǒng)的微處理器,進(jìn)行實(shí)時(shí)數(shù)據(jù)收發(fā)。其硬件系統(tǒng)分為2層:第一層,CAN總線與F2812接口層;第二層,F(xiàn)2812與外圍器件的信息處理。CAN收發(fā)器采用低廉的PCA82C250,系統(tǒng)的擴(kuò)展性強(qiáng),至少可連接110個(gè)節(jié)點(diǎn),其引腳8(Rs)用于選擇工作模式,高速工作時(shí)上接一個(gè)斜率電阻,根據(jù)總線通信速度可適當(dāng)調(diào)整,一般在16~140 Kb/s之間。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 DSP程序設(shè)計(jì)
本系統(tǒng)中,微處理器TMS320F2812主要完成2個(gè)功能:一是對(duì)eCAN控制器進(jìn)行初始化;二是完成上位機(jī)USB接口和下位機(jī)CAN接口的數(shù)據(jù)通信。USB接口通信通過(guò)查詢(xún)USB100的TXE和RXF引腳的狀態(tài)來(lái)完成上位機(jī)與微處理器F2812的數(shù)據(jù)交換,CAN接口的通信主要包括eCAN模塊的消息發(fā)送和接收。
F2812上電復(fù)位后,必須對(duì)軟件進(jìn)行初始化,其中最重要的是對(duì)eCAN模塊初始化。消息發(fā)送時(shí),需要初始化發(fā)送郵箱,包括向寄存器CANME使能相應(yīng)郵箱、設(shè)置CANMD方向、通過(guò)MBOXn.MSGID(n=O~31)設(shè)置發(fā)送郵箱的ID等操作,初始化后向消息數(shù)據(jù)寄存器ECanaMboxes.Mboxn.MDR寫(xiě)入上位機(jī)USB接口發(fā)送的數(shù)據(jù),然后設(shè)置EcanaRegs.CANTRS.bit.TRSn為1請(qǐng)求發(fā)送消息,等待傳輸響應(yīng)位TA=1,表示消息成功發(fā)送,并產(chǎn)生發(fā)送中斷,本系統(tǒng)通過(guò)發(fā)送中斷子程序統(tǒng)計(jì)發(fā)送消息個(gè)數(shù)。消息接收時(shí),同樣需要初始化相應(yīng)的接收郵箱,完成初始化后,當(dāng)下位機(jī)通過(guò)CAN接口發(fā)送數(shù)據(jù)時(shí),如果eCAN模塊的接收郵箱的ID與下位機(jī)消息的ID匹配,并成功接收,則相應(yīng)的接收消息掛起寄存器(CANRMP)的相應(yīng)位被置1;若CPU開(kāi)放了eCAN接收中斷,則同時(shí)也產(chǎn)生接收消息中斷,在接收中斷子程序,可以將相應(yīng)的消息數(shù)據(jù)寄存器的內(nèi)容發(fā)給USB100模塊的寫(xiě)地址,同時(shí)需要查詢(xún)USB100的TXE端是否允許向USB端口發(fā)送數(shù)據(jù)。
作者:葉成 劉曉剛 劉春生 來(lái)源:電子元器件應(yīng)用