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