• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于SJA1000的CAN通信

      2015-04-20 15:36:32郭丹丹楊瀛陸

      郭丹丹 楊瀛陸

      摘 要:本文介紹了CAN總線(xiàn)的概念,給出了SJA1000控制器的基本功能,原理框圖,描述了軟件設(shè)計(jì)的流程,分為初始化、發(fā)送和接收流程,給出了上位機(jī)測(cè)試軟件界面,總結(jié)SJA1000是很好的CAN通訊控制器。

      關(guān)鍵詞:CAN;SJA1000控制器;硬件設(shè)計(jì)框圖

      中圖分類(lèi)號(hào):TN915 文獻(xiàn)標(biāo)識(shí)碼:A

      1 CAN總線(xiàn)概述

      CAN總線(xiàn)(Controller Area Network)是眾多現(xiàn)場(chǎng)通信總線(xiàn)的一種,它屬于串行數(shù)據(jù)通訊總線(xiàn)。CAN網(wǎng)絡(luò)最大通訊距離為10km(5kbps),通訊速率可配置最高可達(dá)1Mbps(40m)。

      2 SJA1000獨(dú)立控制器簡(jiǎn)介

      CAN總線(xiàn)器件有兩種:一種是獨(dú)立CAN控制器;另外一種是片上微控制器的總線(xiàn)控制器。SJA1000CAN控制器屬于獨(dú)立的CAN控制器,因?yàn)樗С諧AN2.0B規(guī)約,軟件和硬件都兼容之前的同類(lèi)型芯片PCA82C200,技術(shù)相對(duì)比較成熟,并能應(yīng)用在汽車(chē)和工業(yè)環(huán)境下,因此應(yīng)用的范圍比較廣泛。SJA1000的主要特性為:

      (1)硬件的外特性與CAN總線(xiàn)控制器PCA82C200兼容;(2)軟件操作和使用與PCA82C200兼容;(3)增加了擴(kuò)展接收緩沖器;(4)在通信上支持CAN2.0B協(xié)議;(5)同時(shí)支持11位和29位標(biāo)識(shí)符;(6)通訊速率1Mbits/s;(7)對(duì)于增強(qiáng)CAN模式的支持;(8)時(shí)鐘頻率可以支持到24MHz;(9)對(duì)于微處理器接口支持多種;(10)CAN輸出配置可編程;芯片的工作溫度范圍-40℃~+125℃。

      3 硬件設(shè)計(jì)框圖

      板卡集成了1片PCI9054總線(xiàn)接口芯片,它負(fù)責(zé)PCI總線(xiàn)接口的轉(zhuǎn)換;1片Cyclone III系列的FPGA(EP3C25F324),它負(fù)責(zé)輸出控制信號(hào)和初始化CAN控制器;4片CAN控制器(SJA1000),它負(fù)責(zé)并行數(shù)據(jù)總線(xiàn)到CAN總線(xiàn)協(xié)議的轉(zhuǎn)換;4片CAN總線(xiàn)接口控制器(PCA82C250),它負(fù)責(zé)TTL的CAN總線(xiàn)信號(hào)到符合ISO 11898標(biāo)準(zhǔn)的CAN總線(xiàn)信號(hào)的轉(zhuǎn)換;2片高速數(shù)字隔離器(ADuM1410),它實(shí)現(xiàn)CAN總線(xiàn)控制器的數(shù)字信號(hào)與CAN總線(xiàn)接口控制器的數(shù)字信號(hào)的隔離。另外,板卡還集成了電平轉(zhuǎn)換芯片(TXS0108EPWR)、隔離電源模塊、EEPROM(93LC56)配置芯片、Flash存儲(chǔ)器(EPCS16)、狀態(tài)指示燈和JTAG/AS下載座等。

      4 軟件設(shè)計(jì)

      軟件設(shè)計(jì)思想:

      CAN通信分為兩種模式:基本模式和擴(kuò)展模式,擴(kuò)展模式較為復(fù)雜,本文以基本模式為范例講述CAN的通信流程。

      軟件從整體上分為:初始化,發(fā)送和接收三個(gè)部分。

      注意一些寄存器只在PeliCAN 模式有效控制寄存器就僅在BasicCAN 模式里有效而且一些寄存器是只讀的或只寫(xiě)的還有一些只能在復(fù)位模式中訪(fǎng)問(wèn)。

      4.1 初始化。SJA1000的初始化只有在復(fù)位模式下才可以進(jìn)行。芯片的初始化包括工作方式的設(shè)定、芯片的接收屏蔽寄存器(AMR)設(shè)置和芯片的接收代碼寄存器(ACR)的設(shè)置、芯片的總線(xiàn)時(shí)序寄存器的設(shè)置、芯片的輸出模式寄存器和芯片的中斷寄存器的設(shè)置等。初始化設(shè)置完成,需要設(shè)定SJA1000芯片進(jìn)入工作模式,然后就可以進(jìn)行正常的通訊。芯片的初始化步驟如下:(1)關(guān)閉中斷,進(jìn)入復(fù)位模式;(2)配置接收屏蔽寄存器(AMR)和配置接收代碼寄存器(ACR);(3)配置波特率;(4)輸出寄存器的配置(建議選擇開(kāi)開(kāi)漏輸出);(5)配置basican模式,關(guān)閉CLKOUT輸出;(6)打開(kāi)數(shù)據(jù)溢出中斷、錯(cuò)誤中斷、發(fā)送中斷和接收中斷(中斷寄存器);(7)進(jìn)入工作模式。

      4.2 發(fā)送數(shù)據(jù)。發(fā)送數(shù)據(jù)的流程相對(duì)簡(jiǎn)單主要是配置設(shè)備的ID,發(fā)送數(shù)據(jù)長(zhǎng)度,然后把需要發(fā)送數(shù)據(jù)放到buffer即可,(表1為發(fā)送區(qū)列表)發(fā)送數(shù)據(jù)流程如下:(1)首先判斷上次發(fā)送數(shù)據(jù)是否完成;(2)判斷發(fā)送緩沖區(qū)是否鎖定;(3)如果數(shù)據(jù)發(fā)送完成并且發(fā)送緩沖區(qū)沒(méi)有鎖定;(4)啟動(dòng)發(fā)送。

      4.3 接收數(shù)據(jù)

      (1)判斷中斷寄存器是否有接收中斷;(2)如果有接收中斷則判斷狀態(tài)寄存器是否有數(shù)據(jù);(3)狀態(tài)寄存器中有數(shù)據(jù)那么判斷報(bào)文是否有效;(4)如果有效,那么從接收buffer中獲取接收數(shù)據(jù)的長(zhǎng)度和數(shù)據(jù)屬于遠(yuǎn)程幀還是數(shù)據(jù)幀,然后開(kāi)始接收數(shù)據(jù);(5)接收數(shù)據(jù)完成清buffer,以便下次接收數(shù)據(jù)。

      結(jié)語(yǔ)

      本文以使用SJA1000作為CAN通信的控制芯片進(jìn)行數(shù)據(jù)發(fā)送和接收,在基本模式下滿(mǎn)足了通信的需要并且滿(mǎn)足了對(duì)于CAN通信參數(shù)的設(shè)置,在效率測(cè)試中可以實(shí)現(xiàn)1ms周期接收數(shù)據(jù)64小時(shí)不丟包。通過(guò)搭建的測(cè)試界面,不但大大地方便了通信的調(diào)試,而且驗(yàn)證了邏輯功能以及驅(qū)動(dòng)和動(dòng)態(tài)庫(kù)的可靠性。

      參考文獻(xiàn)

      [1]郭發(fā)東.P89V51RD2與SJA1000實(shí)現(xiàn)CAN節(jié)點(diǎn)實(shí)例[J].山東科學(xué),2006.

      九台市| 太仆寺旗| 云安县| 诏安县| 大安市| 潮州市| 教育| 侯马市| 铜山县| 射阳县| 清流县| 浦江县| 湖北省| 清水县| 石屏县| 东源县| 临沧市| 西林县| 阜康市| 洪雅县| 古蔺县| 咸宁市| 堆龙德庆县| 二手房| 汤阴县| 门头沟区| 扎囊县| 闽清县| 嘉义县| 天峨县| 敦煌市| 阳山县| 阿克苏市| 财经| 商城县| 瑞昌市| 江孜县| 和硕县| 资中县| 方正县| 高州市|