基于dsPIC30F6014數(shù)字信號(hào)控制器的CAN節(jié)點(diǎn)設(shè)計(jì)
2.1 CAN節(jié)點(diǎn)硬件設(shè)計(jì)
圖2所示為CAN總線網(wǎng)絡(luò)示例。圖中給出了三種CAN網(wǎng)絡(luò)實(shí)現(xiàn)方式:微控制器+CAN控制器+CAN收發(fā)器;集成CAN控制器的微控制器+CAN收發(fā)器;CAN的串行I/O器件+CAN收發(fā)器。其中節(jié)點(diǎn)1由MICROCHIP公司的dsPIC30F6014集成CAN控制器+MCP2551CAN收發(fā)器構(gòu)成;節(jié)點(diǎn)2由MICROCHIP公司的PIC單片機(jī)+SPI接口的MCP2550串行CAN控制器+MCP2551CAN收發(fā)器構(gòu)成;PC機(jī)的CAN節(jié)點(diǎn)由Philips公司的SJA1000CAN控制器+PCA82C250CAN收發(fā)器構(gòu)成。本文的研究和試驗(yàn)結(jié)果就是在這一網(wǎng)絡(luò)框架下完成的。
顯然dsPIC30F6014只需加上CAN總線收發(fā)電路就可掛接到CAN通信網(wǎng)絡(luò)上,大大簡(jiǎn)化了通信系統(tǒng)的設(shè)計(jì),同時(shí)可減少通信節(jié)點(diǎn)受到干擾的概率。CAN模塊通過(guò)CAN控制器接口芯片MCP2551連接到物理總線上。MCP2551是一個(gè)可容錯(cuò)的高速CAN器件,可作為CAN協(xié)議控制器和物理總線接口。MCP2551 可為CAN 協(xié)議控制器提供差分收發(fā)能力,它完全符合ISO-11898標(biāo)準(zhǔn),包括能滿足24V 電壓要求。它的工作速率高達(dá)1 Mb/s。
2.2 CAN節(jié)點(diǎn)軟件設(shè)計(jì)
CAN總線的3層結(jié)構(gòu)模型為: 物理層、數(shù)據(jù)鏈路層和應(yīng)用層。系統(tǒng)的開(kāi)發(fā)主要在應(yīng)用層軟件的設(shè)計(jì)上,CAN總線節(jié)點(diǎn)的軟件設(shè)計(jì)主要包括三大部分:CAN節(jié)點(diǎn)初始化、報(bào)文發(fā)送和報(bào)文接收。初始化程序設(shè)計(jì)對(duì)于CAN總線節(jié)點(diǎn)的正常工作相當(dāng)重要。它主要包括工作方式的設(shè)置、接收屏蔽寄存器和接收代碼寄存器的設(shè)置、總線定時(shí)器的設(shè)置和中斷允許寄存器的設(shè)置。MICROCHIP公司提為開(kāi)發(fā)者提供了豐富的開(kāi)發(fā)工具和應(yīng)用程序庫(kù),使得開(kāi)發(fā)代碼效率大大提高。由于CAN 協(xié)議沒(méi)有規(guī)定信息標(biāo)識(shí)符的分配,因此可以根據(jù)不同應(yīng)用使用不同的方法,所以在設(shè)計(jì)一個(gè)基于CAN 的通訊系統(tǒng)時(shí)確定CAN 標(biāo)識(shí)符的分配非常重要。標(biāo)識(shí)符的分配和定位也是較高層解決手段的其中一個(gè)主要的項(xiàng)目。當(dāng)前較流行的CAN應(yīng)用層協(xié)議有 CANOpen協(xié)議DeviceNet協(xié)議。DeviceNet協(xié)議適合于工廠自動(dòng)化控制,CANOpen協(xié)議適合于所有機(jī)械的嵌入式網(wǎng)絡(luò)。對(duì)于小型網(wǎng)絡(luò)(圖2所示)Modbus 協(xié)議是一個(gè)不錯(cuò)的解決發(fā)案。Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通用語(yǔ)言,通過(guò)此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。它已經(jīng)成為一個(gè)通用工業(yè)標(biāo)準(zhǔn)。有了它不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò)進(jìn)行集中監(jiān)控。 Modbus 協(xié)議支持主/從通訊方式同時(shí)也支持使用對(duì)等技術(shù)通訊。因此Modbus協(xié)議不僅能夠支持RS232、RS485 網(wǎng)絡(luò)也能夠充分發(fā)揮CAN-bus 網(wǎng)絡(luò)的性能與通訊效率。
3 系統(tǒng)應(yīng)用中應(yīng)注意的問(wèn)題
在實(shí)際運(yùn)行中, 經(jīng)常會(huì)遇到CAN總線不通和數(shù)據(jù)傳輸過(guò)程中丟幀現(xiàn)象,糾其原因主要有以下幾方面:
(1)為了進(jìn)一步提高抗干擾措施, 在CAN控制器和收發(fā)器之間應(yīng)使用由高速隔離器件如6N137 構(gòu)成的隔離電路,同時(shí)采用DC-DC模塊將電源隔離,增強(qiáng)抗電磁干擾能力,保護(hù)系統(tǒng)電路不受網(wǎng)絡(luò)影響。
(2) 總線兩端的2個(gè)120歐姆的電阻, 對(duì)于匹配總線阻抗, 起著相當(dāng)重要的作用。若忽略掉它們,會(huì)使數(shù)據(jù)通信的抗干擾性及可靠性大大降低, 甚至無(wú)法通訊。
(3) 在軟件設(shè)計(jì)時(shí), CAN 總線定時(shí)器的設(shè)置非常關(guān)鍵, CAN 總線上的所有控制器必須有相同的波特率和位長(zhǎng)度。然而,不同的控制器并不要求使用相同的主振蕩器時(shí)鐘。如果各個(gè)控制器的時(shí)鐘頻率不同,必須通過(guò)調(diào)節(jié)各個(gè)段的時(shí)間份額數(shù)調(diào)節(jié)波特率。下面是時(shí)間段編程的一些要求:
傳播段+ 相位緩沖段1> = 相位緩沖段2
相位緩沖段2 > 同步跳轉(zhuǎn)寬度
通常,位的采樣應(yīng)當(dāng)發(fā)生在位時(shí)間的60-70% 左右,取決于系統(tǒng)參數(shù)。
結(jié)語(yǔ)
本文的創(chuàng)新觀點(diǎn)在于:詳細(xì)介紹了dsPIC30F6014數(shù)字信號(hào)控制器CAN節(jié)點(diǎn)實(shí)現(xiàn)方案。研究和試驗(yàn)結(jié)果表明利用dsPIC30F6014數(shù)字信號(hào)控制器構(gòu)成的CAN節(jié)點(diǎn)具有許多優(yōu)良的性能,并能充分發(fā)揮節(jié)點(diǎn)的功能,為嵌入式系統(tǒng)CAN節(jié)點(diǎn)設(shè)計(jì)提供了一種新型實(shí)用方案。
評(píng)論