淺談Small RTOS51 下CAN總線(xiàn)數據收發(fā)實(shí)現
3.2.節點(diǎn)電路設計
?。?)SJA1000與單片機接口電路
?。╞)SJA1000與單片機接口電路
SJA1000的AD0-AD7與單片機的數據總線(xiàn)相連,地址A17作為SJA1000的片選使能端,由ALE、WR、RD控制SJA1000 數據的發(fā)送和接收。注意SJA1000復位端的連接,單片機是高電平復位,而SJA1000是低電平復位,因此復位信號要通過(guò)一個(gè)反相器與SJA1000復位端相連。另外SJA1000的11腳MODE接高電平,選擇Intel二分頻模式 .SJA1000的16腳時(shí)中斷信號輸出,在中斷允許情況下,有中斷發(fā)生時(shí),16腳出現有高電平到低電平的跳變。
SJA1000的ODE引腳可選擇接口模式:
◆Intel模式 MODE高
◆M0torola模式 MODE低
?。?)節點(diǎn)前端物理接口電路的設計
?。╟)節點(diǎn)前端物理接口電路的設計
使用SJA1000 CAN總線(xiàn)控制器可完成CAN總線(xiàn)通信任務(wù),但它的驅動(dòng)能力不夠,因此外接82C250總線(xiàn)驅動(dòng)芯片。CAN是控制器局域網(wǎng)絡(luò )(Controller Area Network, CAN)的簡(jiǎn)稱(chēng),是由研發(fā)和生產(chǎn)汽車(chē)電子產(chǎn)品著(zhù)稱(chēng)的德國B(niǎo)OSCH公司開(kāi)發(fā)了的,并最終成為國際標準(ISO118?8)。是國際上應用最廣泛的現場(chǎng)總線(xiàn)之一。 在北美和西歐,CAN總線(xiàn)協(xié)議已經(jīng)成為汽車(chē)計算機控制系統和嵌入式工業(yè)控制局域網(wǎng)的標準總線(xiàn),并且擁有以CAN為底層協(xié)議專(zhuān)為大型貨車(chē)和重工機械車(chē)輛設計的J1939協(xié)議。近年來(lái),其所具有的高可靠性和良好的錯誤檢測能力受到重視,被廣泛應用于汽車(chē)計算機控制系統和環(huán)境溫度惡劣、電磁輻射強和振動(dòng)大的工業(yè)環(huán)境82C250是CAN控制器和物理總線(xiàn)間的接口。之所以選擇82C250芯片是因為其具有高速性(最高可達1Mbit/s),具有抗瞬間干擾保護總線(xiàn)的能力。具有降低射頻干擾的斜率控制。此外,它可以與110 個(gè)節點(diǎn)相連,防止電池與地之間發(fā)生短路,當某一個(gè)節點(diǎn)掉電時(shí),不會(huì )影響總線(xiàn)。
?。?)設計電路注意的問(wèn)題
◆SJA1000通過(guò)光耦與82C250的連接是光電隔離的接法。這樣可以防止線(xiàn)路間的串擾。在總線(xiàn)兩端要接2 個(gè)120歐姆的總線(xiàn)阻抗匹配電阻。忽略掉它們會(huì )降低總線(xiàn)的抗干擾能力,甚至導致無(wú)法通信。
◆SJA1000的TX1腳懸空,RX1引腳的電位必須維持在0.5vcc以上,否則將不能行成CAN協(xié)議所要求的電平邏輯。
◆光耦6N137的輸入端2,3腳的信號輸入極性要與光耦的輸出極性相同,如果電路設計時(shí)極性相反,也可以通過(guò)軟件編程改變SJA1000的數據輸出極性,從而使單片機的輸出數據與82C250中數據的極性一致。
4 在Small RTOS 下CAN節點(diǎn)的數據接收與發(fā)送實(shí)例
下面將通過(guò)一個(gè)簡(jiǎn)單的實(shí)例(需要配置Small RTOS51操作系統)來(lái)介紹在Small RTOS 下CAN節點(diǎn)的數據接收與發(fā)送過(guò)程。實(shí)例使用兩個(gè)CAN節點(diǎn)組成CAN網(wǎng)絡(luò ),實(shí)現的功能是,每隔一定的定時(shí)周期發(fā)送一幀數據,同時(shí)接收CAN數據,并將接收的CAN數據發(fā)送到CAN總線(xiàn)上。LED將顯示收到的數據幀的頭兩個(gè)字節。
評論