《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > CAN總線/RS232接口的設計
CAN總線/RS232接口的設計
摘要: CAN,全稱為“Controller Area Network”,即控制器局域網,是一種國際標準的,高性價的現場總線,在自動控制領域具有重要作用。CAN是一種多主方式的串行通訊總線,具有較高的實時性能,因此,廣泛應用于汽車工業、航空工業、工業控制、安全防護等領域。
Abstract:
Key words :

  1 引言

  CAN,全稱為“Controller Area Network”,即控制器局域網" target="_blank">局域網,是一種國際標準的,高性價的現場總線,在自動控制領域具有重要作用。CAN是一種多主方式的串行通訊總線,具有較高的實時性能,因此,廣泛應用于汽車工業、航空工業、工業控制、安全防護等領域。

  由于PC機無CAN接口,因此,PC機與智能節點構成CAN總線系統可采用RS232/CAN、并口/CAN、USB/CAN、ISA卡/CAN以及PCI卡/CAN方式接入。而采用RS232/CAN接入時,需采用CAN/RS232接口標準轉換。針對這一問題,提出了CAN/RS232智能電平轉換器設計方案,以SJAl000作為獨立CAN控制器,完成CAN通信協議。并在SJAl000與驅動器之間連接高速光耦,從而實現總線各點間的電氣隔離。

  2 硬件電路設計

  CAN/RS232智能電平轉換器硬件電路主要由微處理器AT89C52、獨立CAN通訊控制器SJAl000、CAN總線驅動器82C250、高速光電耦合器6N136、TTL電平與RS232電平轉換器ICL232、LED數碼管顯示電路以及為SJAl000提供初始地址的撥碼電路組成,其結構框圖如圖1所示。

  3 CAN控制器SJAlOOO

  SJAl000是一款獨立CAN控制器,應用于移動目標和工業局域區域網控制領域。該器件是Philips公司CAN控制器PCA82C200的替代產品。SJAl000具有兩種工作模式,本設計采用PeliCAN工作模式。

  3.1 SJAl000與AT89C52的接口設計

  SJAl000與AT89C52的接口電路如圖2所示。AT89C52負責sJAl000的初始化,控制SJAl000來實現數據的接收和發送等通訊任務。SJAl000的ADO~AD7連接至AT89C52的P0端口,CS連接至AT89C52的P3.4(AT89C52的定時器T0不起作用)。當P3.4為0時,AT89C52選中SJAl000,并通過訪問外部RAM低地址區實現P0端口的讀/寫操作,從而對SJAl000相應寄存器執行讀/寫操作。SJAl000的RD、WR、ALE引腳分別與AT89C52的對應引腳相連,SJAl000的INT引腳接AT89C52的INTO引腳。AT89C52還可通過中斷方式訪問SJAl000。為了增強系統的穩定性,采用雙晶體振蕩器,AT89C52采用11.059 2 MHz的晶體振蕩器,SJAl000選用16 MHz的晶體振蕩器。復位電路可選用DSl232,其輸出引腳ARES與SRES分別與AT89C5l的RESET引腳和SJAl000的RESET引腳相連。

  3.2 SJAl000與驅動器的連接

  SJAl000的TX0、RX0引腳不是直接與82C250的TXD、RXD引腳相連,而是通過高速光耦6N136與82C250相連,這樣可增強CAN總線節點的抗干擾能力,從而實現總線各節點間電氣隔離。高速光耦6N136用于保護SJAl000型CAN總線控制器,該光耦兩側采用5 V的DC—DC電源.可使器件的VCC與VCCl完全隔離,提高系統的抗干擾能力以及節點的穩定性和安全性。圖3所示為SJAl000與CAN驅動器82C250的連接電路。

  4 軟件程序設計

  系統軟件程序設計包括:主程序、CAN節點初始化子程序、RS232報文發送子程序、RS232報文接收子程序、CAN報文接收子程序以及CAN報文發送子程序。其主程序流程圖如圖4所示。

  4.1 CAN節點初始化

  獨立CAN控制器SJAl000必須在上電或硬件復位后設置CAN通訊。上電后SJAl000的17引腳得到一個復位電平(低電平),使其進入復位模式。初始化包括設置工作方式、接收濾波方式、接收屏蔽寄存器和接收代碼寄存器、波特率參數和中斷允許寄存器。初始化設置完成后,SJAl000則進入工作狀態,開始執行通訊任務。

  SJAl000寄存器初始化,首先要將其模式寄存器(MOD)復位模式位置為l,再通過時鐘分頻寄存器(CDR)選擇PeliCAN工作模式,同時關閉時鐘輸出(CLOCKOUT);通過中斷允許寄存器(IER)開啟發送中斷、溢出中斷和錯誤警告中斷;向接收屏蔽寄存器(AMR)和接收代碼(ACR)寄存器賦初值;通過總線定時寄存器0 (BTR0)和總線定時寄存器1(BTRl)設置波特率;為輸出控制寄存器(OCR)賦初值;通過接收緩沖器起始地址寄存器(RBSA)來設置接收緩沖器FIF0的起始地址;清除發送錯誤計數寄存器(TXERR);清除錯誤代碼捕捉寄存器(ECC),最后再次選擇方式寄存器(MOD),設置單濾波,并返回工作狀態。

  4.2 RS232報文發送

  AT89C52內含一組全雙工串行傳輸界面,可同時接收或傳輸外部數據,其信號為TTL電平。由于與標準的RS232界面不兼容,須加電平準轉換IC才可與RS232相連。AT89C52串行發送及接收數據均是通過特殊功能暫存器SBUF完成,在設定通訊協議模式后,通過指令“MOV SUBF,A”就可將存儲在SBUF暫存器內的數據由引腳TXD串行傳輸。

  4.3 RS232報文接收

  AT89C52串行傳輸控制暫存器是由特殊控制暫存器SCON控制,SCON設定串行傳輸工作模式,發送接收時其第9位及發送接收時中斷指示工作。通過指令“MOV A,SBUF”則將外界串行信號經由RXD引腳讀入,并轉換成并列數據存入暫存器A。

  4.4 CAN報文發送

  根據CAN協議,報文傳輸是由獨立CAN控制器SJAl000完成。主控制器必須將要發送的數據按特定格式組合成一幀報文傳輸到發送緩沖器,將命令寄存器中的“發送請求”置1,然后啟動SJAl000發送即可。

  4.5 CAN報文接收

  CAN報文接收子程序負責節點的報文接收和其他情況的處理。接收子程序在結構上要比發送子程序復雜一些,因為在接收報文時,要對同處理諸如總線關閉、錯誤報警、接收溢出等情況。SJAl000報文接收和發送有兩種方式:中斷方式和查詢方式。查詢方式應禁止接收中斷使能,而中斷方式一般用于實時性要求較高的情況。

  在中斷方式下,如果SJAl000已接收一個報文,而且報文通過驗收濾波器并存入接收FIFO,則產生一個接收中斷。因此主控制器立刻工作,將收到的報文發送到報文存儲器中,再通過置位命令寄存器的相應標志“RRB”發送一個釋放接收緩沖器命令。接收FIF0里的更多報文將產生一個新的接收中斷,因此不能將所有接收FIF0中的有效信息在一個中斷周期內讀出。接收緩沖器釋放后,SJAl000會檢查狀態寄存器中接收緩沖器狀態(RBS)是否有更多報文,所有有效信息都將循環讀出。

  5 結語

  本系統設計采用SJAl000作為CAN獨立控制器,以CAN/RS232智能電平轉換器為實例,論述了CAN總線與單片機之間的接口連接,對CAN總線的實際應用具有一定的參考價值。

 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日韩电影免费在线观看网址| 狠狠色综合网站久久久久久久 | 污污网站免费在线观看| 劲爆欧美第一页| 色婷婷在线影院| 国产免费无码一区二区视频| 免费观看无遮挡www的小视频| 国产肉丝袜在线观看| a级毛片100部免费观看| 影音先锋男人天堂| 中文字幕在线亚洲精品| 日本卡一卡2卡三卡4卡无卡| 久青草无码视频在线观看| 欧美人欧美人与动人物性行为| 亚洲激情成人网| 特级毛片A级毛片100免费播放| 全免费A级毛片免费看网站| 美女视频内衣脱空一净二净| 国产亚洲自拍一区| 韩国伦理片久久电影网| 国产成人av在线影院| 久久黄色精品视频| 国产男女猛烈无遮挡免费视频| 2021国产精品自在拍在线播放| 国模极品一区二区三区| av无码精品一区二区三区| 女人18毛片黄| heyzo高清中文字幕在线| 女性高爱潮有声视频| 一本加勒比hezyo东京re高清| 成人动漫在线观看免费| 中国体育生gary飞机| 成人福利免费视频| 中文字幕日韩三级| 无套后进式视频在线观看| 久久er国产精品免费观看2| 日本一道高清一区二区三区 | 真实国产乱子伦在线观看| 免费大黄网站在线观| 福利片福利一区二区三区| 免费日韩在线视频|