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

?

簡析基于PIC32單片機(jī)的CAN總線通信

2016-03-18 06:06:49
移動(dòng)信息 2016年8期
關(guān)鍵詞:標(biāo)識符寄存器報(bào)文

王 越 胡 宇

?

簡析基于PIC32單片機(jī)的CAN總線通信

王 越1胡 宇2

1.沈陽金科精密儀器設(shè)備有限公司,遼寧 沈陽 110136 2.嵐山嵌入系統(tǒng)(沈陽)有限公司,遼寧 沈陽 110000

CAN全稱為“Controller Area Network”即控制器局域網(wǎng),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。隨著通信技術(shù)的快速發(fā)展,CAN總線通信得到廣泛的應(yīng)用?;诖?,闡述了CAN總線數(shù)據(jù)庫的設(shè)計(jì),對基于PIC32單片機(jī)的CAN總線結(jié)構(gòu)及其總線通信進(jìn)行了簡要分析。

CAN總線;數(shù)據(jù)庫;結(jié)構(gòu);通信

PIC32單片機(jī)系列適用于各種嵌入式應(yīng)用領(lǐng)域,包括:工業(yè)、通信、家電以及消費(fèi)電子產(chǎn)品等等。以下就基于PIC32單片機(jī)的CAN總線通訊進(jìn)行分析。

1 CAN總線數(shù)據(jù)庫的設(shè)計(jì)

CAN總線數(shù)據(jù)庫的設(shè)計(jì)主要包括:

(1)CAN節(jié)點(diǎn)。具體包括CAN總線網(wǎng)絡(luò)中所有節(jié)點(diǎn)的名稱以及通信ID。

(2)信號signal。信號signal代表一種類型的變量,一般用消息中的一位或者幾位來表示。一般包含的主要信息有:startBit,即開始位;length即這個(gè)變量的長度是多少位的。除此之外還有最大值、最小值的設(shè)置等。

(3)消息Message。其實(shí)質(zhì)就是在CAN總線上通信的數(shù)據(jù)幀,一個(gè)Message包含的主要信息有:ID,表明這個(gè)數(shù)據(jù)幀是從哪個(gè)節(jié)點(diǎn)發(fā)出的:DLC,也就是數(shù)據(jù)幀的長度,即多少個(gè)字節(jié)(Byte):信號signal,一條消息一般含有一個(gè)或多個(gè)信號。

2 基于PIC32單片機(jī)的CAN總線結(jié)構(gòu)分析

PIC32控制器局域網(wǎng)模塊實(shí)現(xiàn)了CAN規(guī)范2.0B,該規(guī)范主要用于工業(yè)和汽車。該異步串行數(shù)據(jù)通信協(xié)議能在電氣噪聲環(huán)境下提供可靠的通信。PIC32器件系列可以集成最多兩個(gè)CAN模塊。

2.1 CAN模塊支持以下主要特性

第一,符合標(biāo)準(zhǔn)。

(1)完全符合CAN規(guī)范2.0B;(2)最高1 Mbps的可編程比特率。

第二,報(bào)文接收和發(fā)送。

(1)最多32個(gè)報(bào)文FIFO。

(2)每個(gè)FIFO最多可包含32個(gè)報(bào)文,總共最多可包含1 024個(gè)報(bào)文;

知識鏈組織若能有效地開發(fā)利用有價(jià)值的、稀缺的、難以模仿的知識資源,那么就可以獲得相對于其他知識鏈的知識優(yōu)勢。然而,知識鏈組織之間是一種戰(zhàn)略伙伴關(guān)系,依靠合同協(xié)議和相互信任維持合作,在運(yùn)行過程中容易受到目標(biāo)分歧、文化差異、利益不均等的干擾而產(chǎn)生沖突,因此需要運(yùn)用正式的契約機(jī)制、非正式的自實(shí)施機(jī)制、第三方?jīng)_突管理機(jī)制、關(guān)系強(qiáng)度調(diào)節(jié)機(jī)制等多種手段,掃除知識鏈開發(fā)利用知識資源的組織障礙,促進(jìn)知識鏈知識優(yōu)勢的形成。

(3)FIFO可以作為發(fā)送報(bào)文FIFO或接收報(bào)文FIFO;

(4)用戶可為用于發(fā)送的報(bào)文FIFO定義優(yōu)先級;

(5)最多32個(gè)用于報(bào)文過濾的接收過濾器;

(6)最多4個(gè)用于報(bào)文過濾的接收過濾器屏蔽器寄存器;

(7)自動(dòng)響應(yīng)遠(yuǎn)程發(fā)送請求(Remote Transmit Request,RTR);

(8)支持DeviceNetTM尋址。

第三,其他特性。

(1)環(huán)回、監(jiān)聽所有報(bào)文和監(jiān)聽模式,用于自檢、系統(tǒng)診斷和總線監(jiān)視。(2)低功耗工作模式。(3)CAN模塊是PIC32系統(tǒng)總線上的總線主機(jī)。(4)操作不需要直接存儲器訪問(Direct Memory Access,DMA)通道。(5)專用的時(shí)間標(biāo)記定時(shí)器。(6)僅數(shù)據(jù)報(bào)文接收模式。

2.2 PIC32CAN模塊的大體結(jié)構(gòu)框圖(如圖1所示)

注:不是所有特性在所有器件上均可用,而是需要參考具體器件數(shù)據(jù)冊中的“控制器局域網(wǎng)(CAN)”以確定可用性。

圖1PIC32CAN模塊的大體結(jié)構(gòu)框圖

CAN模塊由協(xié)議引擎、報(bào)文接收過濾器和報(bào)文組合緩沖區(qū)(Message Assembly Buffer,MAB)組成。協(xié)議引擎通過CAN總線(按照CAN規(guī)范2.0B)發(fā)送和接收報(bào)文。所接收的報(bào)文在接收報(bào)文組合緩沖區(qū)中組合。然后,接收到的報(bào)文通過報(bào)文接收過濾器進(jìn)行過濾。發(fā)送報(bào)文組合緩沖區(qū)在協(xié)議引擎進(jìn)行處理時(shí)存放待發(fā)送的報(bào)文。CAN報(bào)文緩沖區(qū)駐留在器件RAM中。CAN模塊中沒有CAN報(bào)文緩沖區(qū)。因此,所有報(bào)文都存儲在器件RAM中。CAN模塊是PIC32系統(tǒng)總線上的總線主機(jī),它會根據(jù)需要向器件RAM讀寫數(shù)據(jù)。CAN模塊執(zhí)行操作時(shí)不使用DMA,它可以在無須DMA或CPU干預(yù)的情況下,從器件RAM中讀取報(bào)文。

3 基于PIC32單片機(jī)的CAN總線通信分析

3.1 CAN報(bào)文格式

CAN總線協(xié)議使用異步通信。信息以數(shù)據(jù)幀的形式從發(fā)送器傳遞到接收器,數(shù)據(jù)幀由定義數(shù)據(jù)幀內(nèi)容的字節(jié)字段組成。每一幀都以幀起始(Start of Frame,SOF)位域開始,以幀結(jié)束(End of Frame,EOF)位域結(jié)束。SOF位后面跟隨仲裁和控制字段,它們表示報(bào)文類型、格式、長度和優(yōu)先級。該信息使CAN總線上的每個(gè)節(jié)點(diǎn)都可以適當(dāng)?shù)仨憫?yīng)報(bào)文。數(shù)據(jù)字段用于傳送報(bào)文內(nèi)容,其長度可變,范圍為0至8字節(jié)。錯(cuò)誤保護(hù)通過循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check,CRC)和應(yīng)答(Ac knowledgement,ACK)字段來實(shí)現(xiàn)。(1)CAN總線協(xié)議支持五種幀類型:第一,數(shù)據(jù)幀——包含發(fā)送器向接收器傳送的數(shù)據(jù);第二,遠(yuǎn)程幀——由總線上某個(gè)節(jié)點(diǎn)發(fā)送,用于請求從另一個(gè)節(jié)點(diǎn)發(fā)送具有相同標(biāo)識符的數(shù)據(jù)幀;第三,錯(cuò)誤幀——由任意節(jié)點(diǎn)在檢測到錯(cuò)誤時(shí)發(fā)送;第四,過載幀——在連續(xù)的數(shù)據(jù)幀或遠(yuǎn)程幀之間提供額外的延時(shí);第五、幀間間隔一一在連續(xù)的幀之間提供間隔。(2)CAN 規(guī)范2.0B 還定義了兩種額外的數(shù)據(jù)格式:第一,標(biāo)準(zhǔn)數(shù)據(jù)幀—用于使用11個(gè)標(biāo)識符位的標(biāo)準(zhǔn)報(bào)文;第二,擴(kuò)展數(shù)據(jù)幀—用于使用29個(gè)標(biāo)識符位的擴(kuò)展報(bào)文。(3)CAN總線規(guī)范有三種版本:第一,2.0A——將29位標(biāo)識符視為錯(cuò)誤;第二,2.0B Passive——忽略29位標(biāo)識符報(bào)文;第三,2.0B Active——處理11位和29位標(biāo)識符。

3.2 CAN寄存器

CAN模塊寄存器可以按照它們的功能分為以下幾組:第一,模塊和CAN比特率配置寄存器;第二,中斷和狀態(tài)寄存器;第三,屏蔽器和過濾器配置寄存器;第四,F(xiàn)IFO控制寄存器。

3.3 CAN模塊工作模式

用戶應(yīng)用程序可以選擇以下幾種CAN模塊工作模式:(1)配置模式;(2)正常工作模式;(3)監(jiān)聽模式;(4)監(jiān)聽所有報(bào)文模式;(5)環(huán)回模式;(6)禁比模式。用戶應(yīng)用程序通過寫入CAN控制寄存器中的請求工作模式位REQOP<2:0>(CiCON<26:24>)來請求所需的工作模式。CAN模塊通過CAN控制寄存器中的工作模式位OPMOD<2:0>(CiCON<23:21>)確認(rèn)進(jìn)入所請求的模式。模式轉(zhuǎn)換與CAN網(wǎng)絡(luò)同步執(zhí)行。通過允許CAN中斷寄存器中的模式改變中斷位MODIE(CiINT<19>),用戶應(yīng)用程序可以選擇在所請求的模式改變發(fā)生時(shí)產(chǎn)生中斷。在成功應(yīng)用新模式之后,將會產(chǎn)生CAN中斷?;蛘?,用戶也可以選擇通過查詢OPMOD<2:0>位(CiCON<23:21>)來確定CAN模塊是否成功切換了模式[2]。

4 結(jié)語

基于PIC32單片機(jī)的CAN總線通信在自動(dòng)化領(lǐng)域的應(yīng)用非常廣泛,其特點(diǎn)是結(jié)構(gòu)簡單、成本低,但速度高、實(shí)時(shí)性和可靠性好,因此對其進(jìn)行分析具有重要意義。

[1]張子明,等.基于C8051F040單片機(jī)+BU61580架構(gòu)的1555B總線通信接口模塊的設(shè)計(jì)[J].測控技術(shù),2013(12):157-159.

[2]李多,陳軍.基于單片機(jī)串口實(shí)現(xiàn)1-Wire總線通信的方法[J].微型機(jī)與應(yīng)用,2012(11):41-52.

Analysis of CAN Bus Communication Based on PIC32 MCU

Wang Yue1Hu Yu2

1.Shenyang Jinke precision instrument equipment Co., Ltd., Liaoning Shenyang 110136 2.Arashiyama embedded system(Shenyang)Co., Ltd., Shenyang Liaoning 110000

CAN full name “Controller Area Network”Controller area network, Is one of the most widely used field bus in the world. With the rapid development of communication technology, CAN bus communication has been widely used. Based on this, this paper describes the design of the CAN bus database, the CAN bus structure based on PIC32 MCU and its bus communication are analyzed briefly.

CAN bus; database; structure; communication

TP273.5

A

1009-6434(2016)08-0023-02

猜你喜歡
標(biāo)識符寄存器報(bào)文
淺析5G V2X 通信應(yīng)用現(xiàn)狀及其側(cè)鏈路標(biāo)識符更新技術(shù)
基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
汽車電器(2022年9期)2022-11-07 02:16:24
基于底層虛擬機(jī)的標(biāo)識符混淆方法
CTCS-2級報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
基于區(qū)塊鏈的持久標(biāo)識符系統(tǒng)①
淺析反駁類報(bào)文要點(diǎn)
中國外匯(2019年11期)2019-08-27 02:06:30
分簇結(jié)構(gòu)向量寄存器分配策略研究*
數(shù)字美術(shù)館“數(shù)字對象唯一標(biāo)識符系統(tǒng)”建設(shè)需求淺議
ATS與列車通信報(bào)文分析
南漳县| 阿坝| 凌源市| 金湖县| 改则县| 吴江市| 武宣县| 萝北县| 临桂县| 华池县| 封丘县| 白玉县| 察哈| 林西县| 峡江县| 长沙市| 甘泉县| 河北省| 烟台市| 黄浦区| 兴安盟| 兰坪| 皋兰县| 綦江县| 太仓市| 梅河口市| 观塘区| 宜丰县| 阳曲县| 理塘县| 抚远县| 浠水县| 湾仔区| 龙南县| 仲巴县| 乌兰察布市| 民丰县| 平泉县| 武清区| 麻阳| 施秉县|