Small RTOS51 下CAN總線數(shù)據(jù)收發(fā)實現(xiàn)
1 CAN總線簡介
現(xiàn)場總線技術FCS(Fieldbus Control System)成為當今工業(yè)自動化技術發(fā)展的熱點,德國Bosch公司的CAN(1Mbit/s)是國際標準之一,也是Controller Area Network 的應用標準。它屬于現(xiàn)場總線范疇,是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡。由于其高性能、高可靠性、及獨特設計,CAN總線已成為目前國外最普及和實時性最高的現(xiàn)場總線。CAN總線在可靠性和實時性方面遠遠優(yōu)于RS-485等工業(yè)現(xiàn)線CAN總線主要有下列特征:
1. 數(shù)據(jù)信號采用差分電壓傳輸,兩條信號線”CAN_H”和” CAN_L”。
2. 傳輸介質(zhì)可用雙絞線、同軸電纜或光纖,具有較強的抗干擾能力。直接通信距離最大可達10km(速率小于5kbit/s),最高通信速率可達1Mbit/s(此時距離最長為40m)。
3. 節(jié)點不分主從,節(jié)點任意時刻可向其他節(jié)點發(fā)送信息,依據(jù)優(yōu)先權(quán)進行總線訪問,滿足不同的實時要求。
4. 采用非破壞性基于優(yōu)先權(quán)總線仲裁技術。
5. 采用短幀結(jié)構(gòu),每幀為8bit,保證了數(shù)據(jù)出錯率低。
6. 可以點對點、點對多點及全局廣播方式傳送接收數(shù)據(jù)。
7. 發(fā)送期間若丟失仲裁或由于出錯而遭破壞的幀可自動重發(fā)送。
2Small RTOS51簡介
Small RTOS51 是一個用于8051系列單片機的多任務實時操作系統(tǒng)。8051系列單片機一般只有很少的ROM和RAM資源,如P89C51只有4KB Flash和128字節(jié)RAM。一般的實時操作系統(tǒng)如RTX Tiny 雖然小,但是任務沒有優(yōu)先級和中斷管理,也無源代碼,而uc/os-II規(guī)模太大,需要大量外部RAM?;诖?,Small RTOS51是專為51 單片機編寫嵌入式操作系統(tǒng),它使用了RTX51 Tiny 的堆棧管理機制,并像uc/os-II一樣是搶占式的。
3 一個典型的CAN節(jié)點
3.1.CAN總線接口的結(jié)構(gòu)
一個CAN總線接口有3 部分組成,如圖(a)所示,它們分別對應于CAN總線的物理層、數(shù)據(jù)鏈路層和應用層。
最上層為微控制器,主要負責上層應用以及系統(tǒng)控制,包括CAN協(xié)議的應用層協(xié)議的實現(xiàn),協(xié)調(diào)各系統(tǒng)設備的工作。(本設計采用的MCU是8051)
中間層為CAN控制器,CAN控制器負責處理數(shù)據(jù)幀,完成數(shù)據(jù)的打包、解包,錯誤界定,并提供報文緩沖和傳輸濾波。(本設計采用的CAN總線控制器是Philips公司生產(chǎn)SJA1000)
最底層為CAN收發(fā)器,主要是接口電平的轉(zhuǎn)換,接口電器特性的處理。(本設計采用82C250)
(a)CAN接口結(jié)構(gòu)
3.2.節(jié)點電路設計
(1)SJA1000與單片機接口電路
(b)SJA1000與單片機接口電路
SJA1000 的AD0-AD7與單片機的數(shù)據(jù)總線相連,地址A17作為SJA1000的片選使能端,由ALE、WR、RD控制SJA1000 數(shù)據(jù)的發(fā)送和接收。注意SJA1000復位端的連接,單片機是高電平復位,而SJA1000是低電平復位,因此復位信號要通過一個反相器與SJA1000復位端相連。另外SJA1000的11腳MODE接高電平,選擇Intel二分頻模式 。SJA1000的16腳時中斷信號輸出,在中斷允許情況下,有中斷發(fā)生時,16腳出現(xiàn)有高電平到低電平的跳變。因此16腳可以直接與單片機的外部中斷輸入腳相連接。
SJA1000的ODE引腳可選擇接口模式:
◆Intel模式MODE高
◆M0torola模式MODE低
評論