国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C8051F500的CAN總線通信系統(tǒng)的節(jié)點(diǎn)設(shè)計(jì)

2011-08-07 07:53:10吳志玲靳鴻馮彥君
電子測(cè)試 2011年8期
關(guān)鍵詞:子程序寄存器消息

吳志玲,靳鴻,馮彥君

(中北大學(xué)電子測(cè)試技術(shù)重點(diǎn)實(shí)驗(yàn)室,儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西太原030051)

0 引言

CAN( Controller area network),即控制器局域網(wǎng),是目前國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。CAN為串行通信協(xié)議,能有效的支持具有很高安全等級(jí)的分布式實(shí)時(shí)控制系統(tǒng)。CAN的應(yīng)用范圍極其廣泛,從高速的網(wǎng)絡(luò)到低價(jià)位的多路接線都可以使用CAN。在汽車電子行業(yè)里,使用CAN連接發(fā)動(dòng)機(jī)控制單元、傳感器、剎車系統(tǒng)、電子系統(tǒng)等,其傳輸速率可達(dá)1Mbps。CAN 總線因傳輸時(shí)間短, 受干擾的概率低, 保證了通信的實(shí)時(shí)性。另外, CAN 總線[1]可對(duì)錯(cuò)誤來(lái)源進(jìn)行正確的定位, 將永久的硬件錯(cuò)誤從軟件錯(cuò)誤中獨(dú)立出來(lái), 其協(xié)議采用CRC 檢驗(yàn)并可提供相應(yīng)的錯(cuò)誤處理能力, 同時(shí)保證了數(shù)據(jù)通信的可靠性。

Silicon Lab公司的C8051F500單片機(jī)內(nèi)部集成了CAN控制器[2],符合Bosch規(guī)范2.0A(基本CAN)和2.0B[3](全功能CAN),方便了CAN網(wǎng)絡(luò)通信系統(tǒng)的設(shè)計(jì)。由于C8051F500的高集成度,只需少量外圍測(cè)量電路便可組成集數(shù)據(jù)采集、控制和通信功能于一體的單片機(jī)系統(tǒng),同時(shí)還可提高系統(tǒng)的整體可靠性。另外,C8051F500內(nèi)核與普通51系列兼容,且指令簡(jiǎn)單易學(xué),因此,可縮短系統(tǒng)研發(fā)周期。

1 硬件描述

1.1 系統(tǒng)整體結(jié)構(gòu)

CAN功能節(jié)點(diǎn)硬件分布原理圖如圖1所示。

圖1 CAN功能節(jié)點(diǎn)組成原理圖

1.2 C8051F500 單片機(jī)

Silicon Lab公司推出的C8051F500是完全集成的混合信號(hào)片上系統(tǒng)型MCU。

該單片機(jī)內(nèi)部集成了CAN控制器,其與收發(fā)模塊(CTM1050)共同構(gòu)成CAN節(jié)點(diǎn)模塊。其中CAN控制器包括CAN核、消息存儲(chǔ)器、消息處理器和控制寄存器[4]。由于其MCU無(wú)法直接訪問(wèn)消息RAM,因此有兩組位于控制寄存器的接口寄存器被用來(lái)控制CPU對(duì)消息RAM的訪問(wèn)。接口寄存器通過(guò)緩存?zhèn)鬏攲⒁獋鬏數(shù)臄?shù)據(jù),避免了CPU訪問(wèn)消息RAM時(shí)同CAN消息的發(fā)送和接收之間的沖突。在單個(gè)傳輸時(shí),一個(gè)完整的消息對(duì)象[5]或者消息對(duì)象的一部分在消息RAM和IFx消息緩沖寄存器之間進(jìn)行可靠傳輸。兩個(gè)消息寄存器組的功能是一樣的(除了測(cè)試處于基本模式)。

1.3 隔離CAN收發(fā)器CTM1050

CTM1050[6]是CAN控制器與CAN物理總線之間的接口芯片,其功能框圖如圖2所示。該模塊是集電源隔離、電氣隔離[7]、CAN收發(fā)器、CAN總線保護(hù)于一體的隔離CAN收發(fā)器模塊,可以實(shí)現(xiàn)帶隔離的CAN收發(fā)電路,從而進(jìn)一步提高了系統(tǒng)的抗干擾能力和穩(wěn)定性。其隔離電壓可以達(dá)到DC 2500 V ,并且能連接任何一款CAN協(xié)議控制器。該芯片TxD、RxD 引腳兼容+3.3V及+5V的CAN控制器,不需要外接其他元器件直接將+3.3V或+5V的CAN控制器發(fā)送、接收引腳與CTM模塊的發(fā)送、接收引腳相連接。由此可見(jiàn),CTM1050接口簡(jiǎn)單,使用方便,非常適合對(duì)體積有一定要求的系統(tǒng)設(shè)計(jì)。

圖2 CTM2050T功能框圖

2 系統(tǒng)軟件

在CAN初始化時(shí)會(huì)打開(kāi)CAN中斷,即CAN總線上有數(shù)據(jù)要發(fā)送時(shí)會(huì)產(chǎn)生一個(gè)中斷,此時(shí)由單片機(jī)的MCU來(lái)判斷其優(yōu)先級(jí)是否為最優(yōu),若是,則響應(yīng)其中斷。此時(shí)單片機(jī)內(nèi)的CAN處理器會(huì)控制消息緩存寄存器寫入數(shù)據(jù),并按照協(xié)議對(duì)消息進(jìn)行處理;等發(fā)送請(qǐng)求中斷產(chǎn)生,響應(yīng)中斷并發(fā)送處理好的數(shù)據(jù),此為一次數(shù)據(jù)收發(fā)過(guò)程[8]。CAN總線數(shù)據(jù)收發(fā)流程圖如圖3所示。

圖3 CAN總線收發(fā)程序流程

2.1 系統(tǒng)初始化

系統(tǒng)初始化主要包括端口、時(shí)鐘和CAN控制器的初始化。此處主要對(duì)CAN控制器初始化做詳細(xì)說(shuō)明,其一般步驟如下:

·將SFRPAGE寄存器設(shè)置為CAN0_PAGE;

·將CAN0CN寄存器中的INIT和CCE位

設(shè)置為’1’;

·設(shè)置位定時(shí)寄存器和BRP擴(kuò)展寄存器中的時(shí)序參數(shù);

·初始化每個(gè)消息對(duì)象或?qū)⑵銶sgVal位設(shè)置為NOT VALID(無(wú)效);

·將INIT位清零。

其初始化部分程序如下:

2.2 收發(fā)程序

系統(tǒng)初始化完成后,在主程序中調(diào)用接收子程序,由接收子程序來(lái)響應(yīng)總線上的消息接收請(qǐng)求命令。接收子程序要比發(fā)送子程序復(fù)雜一些,因?yàn)樵谔幚斫邮請(qǐng)?bào)文的過(guò)程中,還要對(duì)諸如總線關(guān)閉、錯(cuò)誤報(bào)警、接收溢出等情況進(jìn)行處理。下面給出部分接收子程序:

發(fā)送子程序負(fù)責(zé)節(jié)點(diǎn)報(bào)文的發(fā)送。發(fā)送時(shí)用戶只需將處理好的待發(fā)送的數(shù)據(jù)按特定的格式組合成一幀報(bào)文,送入發(fā)送緩存區(qū)中,然后啟動(dòng)發(fā)送即可。由于發(fā)送過(guò)程與接收過(guò)程只是數(shù)據(jù)緩存寄存器與消息RAM之間的數(shù)據(jù)傳輸方向有所不同,故在此不再贅述。

3 仿真結(jié)果

此次設(shè)計(jì)采用IDE開(kāi)發(fā)環(huán)境,并用其進(jìn)行仿真,所用適配器為新華龍公司最新產(chǎn)品U-EC6。如圖4所示,為實(shí)驗(yàn)仿真結(jié)果中各寄存器、地址空間和相關(guān)變量的值。此CAN節(jié)點(diǎn)的通信速率為1Mbps,將適配器與目標(biāo)節(jié)點(diǎn)相連接,再通過(guò)USB數(shù)據(jù)線分別與PC相連,由上位機(jī)控制總線給節(jié)點(diǎn)發(fā)送命令,進(jìn)行數(shù)據(jù)的接受,并對(duì)其進(jìn)行處理,等待發(fā)送中斷到來(lái),再將總線所需數(shù)據(jù)發(fā)送回總線。實(shí)驗(yàn)結(jié)果顯示:數(shù)據(jù)傳送完整、準(zhǔn)確、高效,并且有效的解決了系統(tǒng)數(shù)據(jù)沖突等問(wèn)題,滿足本次設(shè)計(jì)的初衷。

圖4 結(jié)果仿真顯示

4 結(jié)語(yǔ)

本次設(shè)計(jì)采用由內(nèi)部集成了CAN控制的C8051500單片機(jī)與隔離CAN收發(fā)器CTM1050共同構(gòu)成的模塊作為CAN總線通信系統(tǒng)的智能節(jié)點(diǎn)。首先,解決了節(jié)點(diǎn)的CPU在訪問(wèn)消息RAM時(shí)同CAN消息的發(fā)送與接收發(fā)生沖突等問(wèn)題;其次,使微控制器這一核心部件的控制得以簡(jiǎn)化;最后,由于同以往的節(jié)點(diǎn)相比減少了外部隔離光耦,還使得單片機(jī)的外圍電路得到大大簡(jiǎn)化,從而使系統(tǒng)的穩(wěn)定性、可靠性及實(shí)時(shí)性得到進(jìn)一步高。

[3]李迎.基于C8051F040的CAN總線接口嵌入式系統(tǒng)開(kāi)發(fā)[J].電子測(cè)量技術(shù),2009(2):90-94.

[4]饒運(yùn)濤,鄒繼軍,鄭永云.現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003.

[5]袁越陽(yáng).C8051F040的CAN模塊應(yīng)用研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2008(10):76-79.

[6]楊春杰,王曙光,亢紅波,等.CAN總線技術(shù)[M].北京:北京航空航天大學(xué)出版社,2010.

[7]于曉光.CAN總線隔離器的設(shè)計(jì)與應(yīng)用[J].電子設(shè)計(jì)工程,2009(12):1-4.

[8]于成毅,裴東興,梁志劍.基于CAN總線的數(shù)據(jù)采集節(jié)點(diǎn)的設(shè)計(jì)[J].電子測(cè)試,2009(11):62-66.

[1]王黎明,夏立,邵英,閆曉玲.CAN現(xiàn)場(chǎng)總線系統(tǒng)的設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2008.

[2]鮑可進(jìn).C8051F單片機(jī)原理及應(yīng)[M].北京:中國(guó)電力出版社,2006.

猜你喜歡
子程序寄存器消息
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
一張圖看5G消息
分簇結(jié)構(gòu)向量寄存器分配策略研究*
淺談子程序在數(shù)控車編程中的應(yīng)用
子程序在數(shù)控車加工槽中的應(yīng)用探索
消息
消息
消息
西門子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
簡(jiǎn)化編程與子程序嵌套的應(yīng)用
科技傳播(2011年24期)2011-08-29 05:39:46
义马市| 易门县| 宁城县| 栖霞市| 章丘市| 浙江省| 凤庆县| 宿州市| 普定县| 肥乡县| 石门县| 民丰县| 鄂尔多斯市| 安塞县| 平陆县| 海门市| 石狮市| 信阳市| 灵璧县| 浠水县| 柘荣县| 西丰县| 曲阳县| 云南省| 全南县| 五台县| 潼南县| 隆回县| 平度市| 洮南市| 新疆| 禹城市| 湖南省| 泰州市| 砀山县| 陇西县| 铜陵市| 息烽县| 秦安县| 高尔夫| 漠河县|