2019亚洲日韩新视频_97精品在线观看_国产成人精品一区二区_91精品网站在线观看

CAN總線與RS-485轉換電路板的設計

來源:期刊VIP網所屬分類:軟件開發時間:瀏覽:

  摘要:CAN總線已在變電站自動化系統中得到了廣泛應用,而SJA1000作為PHILIPS公司最近推出的獨立CAN器件也已得到了廣泛關注。本論文的系統采用微控制器+CAN控制器+CAN收發器,微控制器為MCS-51系列,CAN控制器為PHILIPS公司SJA1000CAN控制器,CAN接收器選用82C250。介紹了SJA1000的基本原理和功能,并給出了SJA1000的典型硬件連接原理圖及初始化程序和部分通信程序。CAN軟件設計主要采用匯編語言,最主要的目的是實現CAN是發送報文與接收報文。并與RS485接口進行比較,最后試驗傳輸率<5KBPS,傳輸距離用仿真電纜模擬是否可以達到10KM。

  關鍵詞:CAN SJA1000 匯編語言

  Abstract:The principle and function of SJA1000 stand–alone CAN controller are introduced; the hardware connection diagram and the communication program of SJA1000 are given. The Design the system introduced in the book adopt the tiny controller + the controller of CAN+ the transceiver of CAN, the tiny controller is serieses MCS-51s, The CAN controller is SJA1000 of PHILIPS company .The CAN software design is main to adopt to edit collected materials the language, the purpose of the most is to realizes the CAN is to send out the report text with receive the report text.

  Key words:CAN; SJA1000;assemble; language

  中圖分類號:TM13 文獻標識碼: A 文章編號:

  CAN(ControllerAreaNetwork)總線,又稱控制器局域網,是Bosch公司在現代汽車技術中領先推出的一種多主機局部網,由于其卓越的性能,極高的可靠性,獨特靈活的設計和低廉的價格,現已廣泛應用于工業現場。控制智能大廈,小區安防,交通工具,醫療儀器,環境監控等眾多領域CAN,已被公認為幾種最有前途的現場總線之一。

  RS485僅僅是一種半雙工通信的電氣協議,其通信介質為雙絞線,傳輸的信號在雙絞線上呈現一對正負相反的電平信號用來表示邏輯“1”和邏輯“0”。在RS485的通信網絡中,只能讓一個節點向網絡發送數據。系統中每一個節點的RS485驅動器都有一個發送使能控制端DE,其作用是驅動器發送數據時,控制該發送器有效,使其向網絡發送數據;數據發送完后,DE則關閉發送器,使其處于高阻值狀態,從而不影響網絡中其它節點的數據傳送。如果發生故障,出現幾個節點同時向網絡發送數據,這就等于多個RS485驅動器同時向一對雙絞線上輸出不同的電平信號,結果使得整個網絡呈現短路狀態,最終損壞其節點的驅動器,使故障范圍進一步擴大。而CAN總線的傳輸距離遠,通信速率高。

  我們的目的就是制作一個可以在原有的RS485接口的系統上實現CAN通信的數字式電路板。使用戶不用改變原有的系統結構就可以實現具有相當優勢的CAN系統通信,提高效率。

  1.系統介紹

  1.1 CAN總線的應用研究

  期刊論文提示您,現場總線是安裝在生產現場裝置與控制室內自動控制裝置之間的數字式、串行、多點通訊雙向傳輸的數據總線。它的最大優點是可以大幅度節約連接導線、降低安裝和維護的費用;具有精度高、能傳送多個過程變量,包括儀表的自診斷信息等。在十幾種已出臺的現場總線中,CAN總線也是一種很有應用前景的現場總線之一。

  1.2 MAX1487芯片內部的結構,管腳功能及其工作原理

  MAX1487采用+5v電源供電,當供電電流約為500ua時,傳輸率達到2.5MB/S。它適用于半雙工通信。通信傳輸線上最多為±2v-±6v。MAX1487的管腳及內部結構框圖如圖所示。

  腳1RO:接受器輸出;

  腳2RE:接受器使能;

  腳3DE:驅動器使能;

  腳4DI:驅動器輸入;

  腳5GND:地;

  腳6A:接收器非反相輸入或驅動器非反相輸出;

  腳7B:接收器反相輸入或驅動器反相輸出;

  腳8VCC:電源;

  MAX1487的輸入腳DI可與單片機CPU的TXD腳相連,輸出腳RO與單片機CPU的RXD腳相連。MAX1487內部的驅動器與接收器三三太的,通過DE和RE進行發送與接收,發送與接受的兩種控制信號是相反的。可將兩者接相同的控制信號,即“1”電平控制發送,“0”電平控制接收。A,B實現多機聯網。MAX1487的應用電路及通訊協議:在多機通信中,一般PC機作為上位機只有RS232標準的通訊接口,要實現RS485標準接口通信,須通過RS232/RS485轉換接口電路,完成由EIA到TTL電平的轉換。可用專門的帶隔離RS232/485轉換器來實現。MAX1487的RE與DE連接同一個控制信號,如下實際電路中8031的P3.5,嚴格保證收發信號在時間上錯開通信協議:MC51中串行控制寄存器SCON設有多機通信控制位SM2,在編程前,定義從機的地址編號,分別為00H,02H等等從機系統在初始化程序中將串行口編程為約定的接收方式,且置為SM2,允許串行口中斷在主機和某一從機通信之前,先向所有從機發出所選從機的地址,以設置第九位TB8為1表示為地址幀,這時SN2作為地址監聽位,所有從機當接收到的第九位RB8位為1則置為中斷標志RI,中斷后判斷主機送來的地址與本從機是否一致,若為本地址,則清SM2為0,準被發送主機送來的數據幀其他從機保持SM2為1狀態。接著主機發送數據幀,各串行同時接收該數據幀,而只有已選中的從機才能產生中斷并接受該數據,其余從機收到不產生中斷響應,將數據丟失掉。這樣就實現了多機一對一通信。

  1.3 8031單片機系統結構

  8031系列的基本結構如下:

  l 一個8位算術邏輯單元

  l 32個I/O口

  l 兩個16位定時計數器

  l 全雙工串行通信。

  l 6個中斷源兩個中斷優先級

  l 128字節內置RAM。

  l 獨立的64K字節可尋址數據和代碼區。

  每個8031處理周期,包括12個振蕩周期,每12個振蕩周期,用來完成一項操作,如取指令和計算指令執行時間,可把時鐘頻率除以12,取倒數,然后指令執行所須的周期數,因此,如果你的系統時鐘是11.059MHz,除以12,后就得到了每秒執行的指令個數,為921583條指令,取倒數將得到每條指令所須的時間1.085ms。

  1.4 看門狗

  大多數31系列單片機都有看門狗,當看門狗沒有被定時清零時,將引起復位。這可防止程序跑飛。設計者必須清楚看門狗的溢出時間。以決定在合適的時候清看門狗。清看門狗也不能太過頻繁,否則會造成資源浪費。X5045中的看門狗對系統提供了保護功能。當系統發生故障而超過設置時間時,電路中的看門狗將通過RESET信號向CPU作出反應。它所具有的電壓監控功能還可以保護系統免受低電壓的影響,當電源電壓降到允許范圍以下時,系統將復位,直到電源電壓返回到穩定值為止。X5045的存儲器與CPU可通過串行通信方式接口,共有4096個位,可以按512×8個字節來放置數據。

  1.5 SJA1000簡介

  CAN控制模塊的說明

  接口管理邏輯接口管理邏輯負責解釋來自CPU的命令,控制CAN寄存器的尋址,向主控制器提供中斷信息和狀態信息。

  位流處理器(BSP)位流處理器是在發送緩沖器、RXFIFO和CAN總線之間控制數據流的程序裝置。它還執行錯誤檢測、仲裁、總線填充和錯誤處理。

  位時序邏輯(BTL)位時序邏輯監視串口的CAN總線和處理與總線有關的位時序。它在信息開頭“弱勢-支配”的總線傳輸時同步CAN總線位流(硬同步),接收信息時再次同步下一次傳送(軟同步)。BTL提供了可編程的時間段來補償傳播延遲時間、相位轉換(如由于振蕩漂移)和定義采樣點及每一位的采樣次數。

  錯誤管理邏輯(EML)EML負責傳送層中調制解調器的錯誤管理。它接收BSP的出錯報告,使BSP和IML進行錯誤統計。通常情況下,錯誤計數器計數達到255時,將關閉總線,并自動轉入復位狀態,并產生錯誤中斷。經過128個周期的總線空閑后,重新開啟總線。當錯誤計數器計數達到96時(警告限制),將產生錯誤中斷。

  2.系統設計

  8031單片機的全雙工串行口可編程為4種工作方式,現分述如下:

  方式0為移位寄存器輸入/輸出方式。可外接移位寄存器以擴展I/O口,也可以外接同步輸入/輸出設備。8位串行數據者是從RXD輸入或輸出,TXD用來輸出同步脈沖。

  輸出:串行數據從RXD引腳輸出,TXD引腳輸出移位脈沖。CPU將數據寫入發送寄存器時,立即啟動發送,將8位數據以fos/12的固定波特率從RXD輸出,低位在前,高位在后。發送完一幀數據后,發送中斷標志TI由硬件置位。

  輸入:當串行口以方式0接收時,先置位允許接收控制位REN。此時,RXD為串行數據輸入端,TXD仍為同步脈沖移位輸出端。當(RI)=0和(REN)=1同時滿足時,開始接收。當接收到第8位數據時,將數據移入接收寄存器,并由硬件置位RI。方式1為波特率可變的10位異步通訊接口方式。發送或接收一幀信息,包括1個起始位0,8個數據位和1個停止位1。

  輸出:當CPU執行一條指令將數據寫入發送緩沖SBUF時,就啟動發送。串行數據從TXD引腳輸出,發送完一幀數據后,就由硬件置位TI。

  輸入:在(REN)=1時,串行口采樣RXD引腳,當采樣到1至0的跳變時,確認是開始位0,就開始接收一幀數據。只有當(RI)=0且停止位為1或者(SM2)=0時,停止位才進入RB8,8位數據才能進入接收寄存器,并由硬件置位中斷標志RI;否則信息丟失。所以在方式1接收時,應先用軟件清零RI和SM2標志。

  方式2

  方式2:為固定波特率的11位UART方式。它比方式1增加了一位可程控為1或0的第9位數據。

  輸出:發送的串行數據由TXD端輸出一幀信息為11位,附加的第9位來自SCON寄存器的TB8位,用軟件置位或復位。它可作為多機通訊中地址/數據信息的標志位,也可以作為數據的奇偶校驗位。當CPU執行一條數據寫入SUBF的指令時,就啟動發送器發送。發送一幀信息后,置位中斷標志TI。

  輸入:在(REN)=1時,串行口采樣RXD引腳,當采樣到1至0的跳變時,確認是開始位0,就開始接收一幀數據。在接收到附加的第9位數據后,當(RI)=0或者(SM2)=0時,第9位數據才進入RB8,8位數據才能進入接收寄存器,并由硬件置位中斷標志RI;否則信息丟失。且不置位RI。再過一位時間后,不管上述條件時否滿足,接收電路即行復位,并重新檢測RXD上從1到0的跳變。

  工作方式3

  方式3:為波特率可變的11位UART方式。除波特率外,其余與方式2相同。波特率選擇如前所述,在串行通訊中,收發雙方的數據傳送率(波特率)要有一定的約定。在8051串行口的四種工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可變的,由定時器T1的溢出率控制。

  方式0式0的波特率固定為主振頻率的1/12。

  方式2

  方式2的波特率由PCON中的選擇位SMOD來決定,可由下式表示:

  波特率=2的SMOD次方除以64再乘一個fosc,也就是當SMOD=1時,波特率為1/32fosc,

  當SMOD=0時,波特率為1/64fosc方式1和方式3定時器T1作為波特率發生器,

  其公式如下:波特率定時器T1溢出率T1溢出率=T1計數率/產生溢出所需的周期數式中T1計數率取決于它工作在定時器狀態還是計數器狀態。

  當工作于定時器狀態時,T1計數率為fosc/12;當工作于計數器狀態時,T1計數率為外部輸入頻率,此頻率應小于fosc/24。產生溢出所需周期與定時器T1的工作方式、T1的預置值有關。

  定時器T1工作于方式0:

  溢出所需周期數=8192-x

  定時器T1工作于方式1:

  溢出所需周期數=65536-x

  定時器T1工作于方式2:溢出所需周期數=256-x

  因為方式2為自動重裝入初值的8位定時器/計數器模式,所以用它來做波特率發生器最恰當。當時鐘頻率選用11.0592MHZ時,取易獲得標準的波特率,所以很多單片機系統選用這個看起來“怪”的晶振就是這個道理。

  3.主程序設計

  CAN控制器SJA1000在復位模式下對各位寄存器的初始化程序。

  程序如下:

  MOV DPTR,#CR;控制寄存器CR的地址送DPTR

  MOV A,#01H

  MOV @DPTR,A;進入復位模式

  MOV DPTR,#IR;中斷控制寄存器IR的地址送DPTR

  MOV A,#03H

  MOV @DPTR,A

  MOV DPTR,#ACR;接受代碼寄存器ACR的地址送DPTR

  MOV A,#FFH

  MOV @DPTR,A

  MOV DPTR,#AMR;接收屏蔽寄存器AMR的地址送DPTR

  MOV A,#FFH

  MOV @DPTR,A

  MOV DPTR,#BTR0;總線定時寄存器BTR0的地址送DPTR

  MOV A,#FFH

  MOV @DPTR,A

  MOV DPTR,#BTR1;總線定時寄存器BTR1的地址送DPTR

  MOV A,#FFH

  MOV @DPTR,A

  MOV DPTR,#OCR;輸出控制寄存器OCR的地址送DPTR

  MOV A,#FFH

  MOV @DPTR,A

  期刊標準論文格式參考文獻

  [1] 張昆藏。IBMPC/XT微型計算機接口技術。北京:清華大學出版社,1990,281-286。

  [2]鄔寬明.CAN總線原理和應用系統設計[M].北京:北京航空航天大學出版社,1995.

  [3]何立民.MCS-51系列單片機應用與系統設計,系統配置與接口技術.北京:北京航空航天大學出版社,1990。

主站蜘蛛池模板: 德惠市| 尼勒克县| 荣昌县| 巩义市| 汶上县| 江口县| 嘉鱼县| 礼泉县| 佛坪县| 临澧县| 金坛市| 加查县| 芜湖市| 聂拉木县| 南平市| 景谷| 无棣县| 门头沟区| 吉安市| 黔西县| 新龙县| 九龙城区| 武乡县| 沾益县| 边坝县| 岗巴县| 明溪县| 西充县| 内江市| 上虞市| 樟树市| 合川市| 盈江县| 井陉县| 从化市| 尼木县| 大埔县| 平江县| 新邵县| 浦城县| 邢台市|