CAN總線與RS485總線的通信接口設計_第1頁
CAN總線與RS485總線的通信接口設計_第2頁
CAN總線與RS485總線的通信接口設計_第3頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、CAN總線與RS-485總線的通信接口設計1CANRS-485CAN總線(ControllerAreaNetwork)是由德國Bosch公司于20世紀80年代專門為汽車電子控制系統(tǒng)開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,特別適合應用于分布式控制或?qū)崟r控制領域。它的應用范圍遍及高速網(wǎng)絡和低成本的分布式控制系統(tǒng)CAN具有以下特點:無破壞的依據(jù)優(yōu)先權(quán)的仲裁;多主站點依據(jù)優(yōu)先級進行總線訪問;嚴格的錯誤檢測和界定;支持遠程數(shù)據(jù)請求;借助接收濾波的多地址幀傳送;通信介質(zhì)多樣,組合方式靈活;全系統(tǒng)數(shù)據(jù)兼容,系統(tǒng)靈活;最遠傳輸距離為10Km(總線傳輸速率為5kbps),最大傳輸速率為1Mbps(總線傳輸距離為40m)。R

2、S-485標準是美國EIA(電子工業(yè)聯(lián)合會)公布的串行通信協(xié)議。它比RS-232C標準信號傳輸距離長、速度快、抗干擾性能好,廣泛應用于各種工業(yè)、樓宇、能源等領域。在實際應用中,許多工業(yè)控制設備(如PLC)都帶有RS-485接口。因此,有必要設計CAN總線與RS-485總線的通信接口電路。2整個通信接口電路由單片機AT89C52、CAN控制器SJA1000、CAN收發(fā)器82C250、高速光電耦合器6N137和RS-485收發(fā)器MAX485組成。如圖1所示。單片機AT89C52主要完成SJA1000的初始化,及CAN總線和RS-485總線之間的數(shù)據(jù)通信任務SJA1000是CAN控制器82C200的

3、替代產(chǎn)品。它主要由下列功能模塊構(gòu)成:接口管理邏輯、發(fā)送緩沖器、接收緩沖器、接收過濾器、位流處理器、位時序邏輯和錯誤管理邏輯。除了與82C200兼容之外,它增加了許多新功能:PeliCAN工作模式、讀/寫訪問的錯誤計數(shù)器、標準和擴展結(jié)構(gòu)信息的接收和發(fā)送、可編程的錯誤限制報警、只聽模式和仲裁丟失中斷。單片機對SJA1000內(nèi)部寄存器的控制是以訪問外部寄存器的方式進行的CAN收發(fā)器82C250是CAN總線控制器和物理總線之間的接口,主要負責提供對總線的差分發(fā)送能力和對CAN控制器的差分接收能力。它的引腳8(RS)控制3種不同的工作方式的選擇:待機、斜率控制和高速。給RS接上高電平,則82C250以低

4、電流待機方式工作;若RS通過連接電阻接地,則進入斜率控制方式,該方式可以通過改變電阻的阻值來調(diào)節(jié)斜率,適用于低速和較短的總線長度的應用場合;如果RS接地,就選擇了高速工作方式。高速光電耦合器6N137實現(xiàn)了CAN控制器和收發(fā)器之間的電氣隔離,增強了系統(tǒng)的穩(wěn)定性和抗干擾能力RS-485收發(fā)器MAX485是一種差分平衡型的小功率收發(fā)器,包含一個驅(qū)動器和一個接收器,使用單+5V電源供電,專門用于TTL協(xié)議(即通用于各型CPU的通信協(xié)議)和485標準之間的相互轉(zhuǎn)換,使微控制器可以利用RS-485串行通信協(xié)議直接進行串行通信。整個轉(zhuǎn)換過程可分為:CAN總線轉(zhuǎn)換到RS-485總線和RS-485總線轉(zhuǎn)換到C

5、AN總線CAN總線轉(zhuǎn)換到RS-485總線的流程如下:微控制器接收到CAN總線節(jié)點發(fā)送的報文,根據(jù)CAN總線規(guī)定的數(shù)據(jù)格式取出報文的有用信息,然后由微控制器通過MAX485將信息發(fā)送到RS-485總線。而RS-485總線轉(zhuǎn)換到CAN總線則是上述流程的逆過程。3軟件設計軟件設計的主要任務是實現(xiàn)數(shù)據(jù)和控制命令在CAN總線網(wǎng)絡和RS-485總線之間的傳輸。它主要包括RS-485和CAN接口的初始化程序、報文發(fā)送和接收程序、中斷服務程序和錯誤處理程序等。其中,SJA1000的初始化程序是軟件設計中的難點,需要完成各種工作參數(shù)的設置。其中,控制寄存器用來改變CAN控制器的行為,包括進入復位狀態(tài),激活不同類

6、型的中斷源,如接收中斷、發(fā)送中斷和數(shù)據(jù)溢出中斷等。驗收代碼寄存器和驗收屏蔽寄存器共同作用定義了能被節(jié)點所接收報文的條件:所收信息的標識符的相應位與驗收代碼寄存器驗收碼的相應位相等。驗收屏蔽寄存器的作用是確定驗收ADCvwiAD7ADCvwiAD7MBMODEINTDCORXO収的csVS3IVSS2yss?亡心由CAHL碼的哪些位對于驗收濾波是相關的或不相關的??偩€時序寄存器0定義了波特率的預設值及同步跳轉(zhuǎn)寬度;總線時序寄存器1則定義了位周期的長度、采樣點的位置和采樣數(shù)目。輸出控制寄存器可以設置不同的輸出模式(如正常輸出模式、雙相輸出模式和時鐘輸出模式等)。時鐘分頻寄存器不僅可以控制SJA10

7、00的輸出頻率及屏蔽CLKOUT引腳,而且還能夠?qū)asicCAN和PeliCAN模式進行選擇。具體的SJA1000初始化程序流程如圖2所示。CAN總線轉(zhuǎn)換到RS-485總線的程序如下:CAN-RS485_TRANSITI0N:MOVDPTR,#SR;狀態(tài)寄存器MOVXA,DPTR;JNBACC.0,CAN_QUIT;是否接收到信息,無數(shù)據(jù)則退出轉(zhuǎn)換程序CAN-RS485_HANDLE:MOVDPTR,#CANR;接收緩沖區(qū)首地址MOVXA,DPTR;接收幀的格式JNBACC.6,RECEIVE_FRAME;RTR=1則報文是遠程請求幀LCALLTRANSMIT_DATA;發(fā)送對方請求的數(shù)據(jù)LJMPCAN_QUIT;退出轉(zhuǎn)換程序RECEIVE_FRAME:MOVXA,DPTR;ANLA,#0FH;ADDA,#05H;獲得接收數(shù)據(jù)的長度MOVR7,AMOVR0,#43H;設定MCU接收數(shù)據(jù)緩沖區(qū)DATAFRAME:MOVXA,DPTR;接收數(shù)據(jù)MOVR0,ALCALLRS485_SEND;將有效信息通過MAX485轉(zhuǎn)發(fā)到RS-485總線INCDPTRINCR0DJNZR7,DATAFRAME;判斷接收是否結(jié)束RECOUT:MOVDPTR,#CMRMOVA,#04H;釋放接收緩沖區(qū)MOVXDPTR,ACAN_QUIT:RET;退出轉(zhuǎn)換程序4結(jié)束語C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論