999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于PXA168與MCP2515的CAN總線接口設(shè)計

2012-07-12 05:06:26廣東工程職業(yè)技術(shù)學(xué)院機電工程系梁芳芳李南安
電子世界 2012年13期
關(guān)鍵詞:調(diào)試結(jié)構(gòu)

廣東工程職業(yè)技術(shù)學(xué)院機電工程系 梁芳芳 王 力 李南安

基于PXA168與MCP2515的CAN總線接口設(shè)計

廣東工程職業(yè)技術(shù)學(xué)院機電工程系 梁芳芳 王 力 李南安

利用SPI接口為PXA168微處理器擴展CAN總線接口,以CAN在環(huán)境設(shè)備控制網(wǎng)絡(luò)中的應(yīng)用為背景,從CAN總線作為網(wǎng)絡(luò)設(shè)備的實現(xiàn)、驅(qū)動程序的二個方面,詳盡闡述了MCP2515 CAN控制器在linux下的網(wǎng)絡(luò)設(shè)備接口函數(shù)的實現(xiàn)。采用該方案擴展的CAN總線接口已經(jīng)應(yīng)用到自主開發(fā)的環(huán)境儀器的控制系統(tǒng)當中,經(jīng)實驗表明,取得了良好的數(shù)據(jù)傳輸效果。

PXA168;MCP2515;CAN總線;SPI;linux

1.引言

CAN現(xiàn)場總線已經(jīng)成為在儀表裝置通信的新標準,其在短距離條件下具有高達1Mbps的數(shù)據(jù)傳輸能力,由于其成本低,實時性好,抗干擾能力強,因此廣泛應(yīng)用于車載數(shù)據(jù)采集系統(tǒng)及汽車電子控制網(wǎng)絡(luò)。在自動化電子領(lǐng)域的汽車發(fā)動機控制部件、傳感器、抗滑系統(tǒng)等應(yīng)用中,CAN的位速率可高達1Mbps。CAN總線允許多站點同時發(fā)送,既保證了信息處理的實時性,又使得CAN總線網(wǎng)絡(luò)可以構(gòu)成多主結(jié)構(gòu)的系統(tǒng),保證了系統(tǒng)的可靠性。另外,CAN采用短幀結(jié)構(gòu),且每幀信息都有校驗及其他檢錯措施,保證了數(shù)據(jù)的實時性、低傳輸出錯率。

2.CAN總線接口硬件設(shè)計

由于PXA168微處理器本身不帶CAN控制器,所以要為處理器平臺擴展CAN總線接口。擴展的方式可以分為串行擴展和并行擴展兩種,但考慮到采用并行總線擴展而產(chǎn)生的硬件開銷和成本問題,本設(shè)計最終根據(jù)實際需求,選用串行SPI總線擴展方式。

MCP2515獨立的CAN控制器結(jié)構(gòu)如圖1所示。微芯公司的MCP2515完全支持CAN V2.0B技術(shù)規(guī)范。能發(fā)送和接收標準和擴展數(shù)據(jù)幀以及遠程幀。MCP2515自帶的兩個驗收屏蔽寄存器和六個驗收濾波寄存器可以過濾掉不想要的報文,因此減少了MCU的開銷。由于MCP2515采用串行SPI方式與微處理器連接,因此大大節(jié)省了系統(tǒng)的硬件開銷,通訊速率為1Mbps。控制器內(nèi)部帶有兩個接收緩沖器,高速SPI接口支持0,0和1,1方式的SPI模式,頻率可以達到10MHz。

3.Linux下的網(wǎng)絡(luò)套接口函數(shù)的實現(xiàn)

套接字接口(socket interface)是一組函數(shù),和其他系統(tǒng)函數(shù)結(jié)合起來用于創(chuàng)建網(wǎng)絡(luò)應(yīng)用,圖2給出了典型的客戶端-服務(wù)器事務(wù)的上下文中的套接字接口描述:

大多數(shù)現(xiàn)代操作系統(tǒng)上都實現(xiàn)了同一套套接字接口,適用于任何底層的協(xié)議。

3.1 套接字地址結(jié)構(gòu)

因特網(wǎng)的套接字地址存放在如下的sockaddr_in的16字節(jié)結(jié)構(gòu)中,其中的IP地址和端口號總是以網(wǎng)絡(luò)字節(jié)順序(大端法)存放的。

其中_in后綴是互聯(lián)網(wǎng)絡(luò)(internet)的縮寫connect函數(shù)、bind和accept函數(shù)要求一個指向與協(xié)議相關(guān)的套接字地址結(jié)構(gòu)的指針,如何定義這些函數(shù),使之能夠接受各種類型的套接字地址結(jié)構(gòu),解決辦法就是這個stuct sockaddr結(jié)構(gòu),我們將所有的與協(xié)議特定的結(jié)構(gòu)的指針轉(zhuǎn)換成這個通用結(jié)構(gòu)就可以,因此定義了一個類型typedef struct sockaddr SA,使用的時候,將所有的sockaddr_in轉(zhuǎn)換成SA類型。

圖1 MCP2515獨立的CAN控制器系統(tǒng)結(jié)構(gòu)

圖2 套接字接口概述

3.2 socket函數(shù)

客戶端和服務(wù)器使用socket函數(shù)來創(chuàng)建一個套接字描述符(socket descriptor)

int socket(int domain,int type,int protocol);

因此在我們的代碼中,經(jīng)常這樣調(diào)用socket函數(shù):

clientfd=Socket(PF_CAN,SOCK_RAW,CAN_RAW);

PF_CAN表示使用CAN網(wǎng)絡(luò)、SOCK_RAW表示該套接字用于原始SOCK,CAN_RAW表示CAN的原始包結(jié)構(gòu)。clientfd描述符僅是部分打開,還不能進行讀寫,要完成打開套接字的工作,取決于是客戶端還是服務(wù)器。基本CAN幀結(jié)構(gòu)如下:

3.3 bind函數(shù)

通過該函數(shù)綁定CAN接口。

3.4 read/write函數(shù)

3.5 通過這兩個函數(shù)進行數(shù)據(jù)的讀和寫完成。

4.底層驅(qū)動的開發(fā)

CAN總線屬于現(xiàn)場總線的一種,屬于控制器局部網(wǎng),因此把其歸并到網(wǎng)絡(luò)設(shè)備更合理,MCP2515驅(qū)動程序是網(wǎng)絡(luò)設(shè)備程序與MCP2515硬件的接口,需要屏蔽設(shè)備的工作細節(jié)提供給用戶程序一系列的標準調(diào)用,其主要就是調(diào)用操作MCP2515的底層函數(shù)實現(xiàn)open,read,write,ioctl,release等系統(tǒng)調(diào)用函數(shù),來完成與內(nèi)核的通信,為了方便網(wǎng)絡(luò)設(shè)備程序與驅(qū)動的交互,可以根據(jù)CAN控制器的工作特點定義MCP2515的設(shè)備結(jié)構(gòu)體。

4.1 open函數(shù)的實現(xiàn)

open函數(shù)實現(xiàn)對S3C2440的SPI口的初始化,以及通過SPI口對MCP2515的寄存器進行相應(yīng)的初始化。包括CAN總線波特率的設(shè)置,設(shè)置報文濾波以及屏蔽寄存器,開啟中斷使能等。

4.2 stop函數(shù)的實現(xiàn)

關(guān)閉設(shè)備,以及釋放申請的中斷號和分配的內(nèi)存空間。

4.3 中斷函數(shù)的實現(xiàn)

Linux內(nèi)核將所有的中斷統(tǒng)一編號,使用一個irq_desc結(jié)構(gòu)數(shù)組來描述這些中斷;每個數(shù)組項對應(yīng)一個中斷號,里面記錄了中斷處理函數(shù)入口,底層的硬件訪問接口,中斷狀態(tài)等,嵌入式linux內(nèi)核會維護一個中斷信號線注冊表,所以在使用中斷前必須先申請中斷號,使用完之后要釋放該中斷號,這里使用的就是函數(shù)request_threaded_irq(spi->irq,NULL,mcp251x_can_ist,IRQF_TRIGGER_FALLING,DEVICE_NAME,priv)來注冊一個中斷處理程序,spi->irq為IRQ_EINT3是所要申請的中斷號,can_interrupt是中斷處理函數(shù)的指針,IRQT_FALLING是中斷觸發(fā)的方式,這里選擇的是下降沿觸發(fā),DEVICE_NAME是產(chǎn)生中斷的設(shè)備名稱,dev_id主要用于共享中斷線,當一個中斷處理程序需要釋放時,內(nèi)核可以根據(jù)該參數(shù)找到中斷處理函數(shù)鏈表中的需要刪除的中斷處理程序,由于MCP2515的中斷比較多,所以在中斷處理程序需要處理各緩沖器的接收和發(fā)送中斷以及喚醒和錯誤處理。中斷函數(shù)代碼片段如下:

上述代碼中intf保存的是從MCP2515的CANINTF寄存器中讀取的中斷信息,根據(jù)將intf分別進行讀,寫和其他操作,在讀時調(diào)用netif_rx進行網(wǎng)絡(luò)數(shù)據(jù)讀操作,在寫時調(diào)用netif_wake_queue喚醒發(fā)送內(nèi)部線程進行發(fā)送,其他的中斷都可以按這種方法實現(xiàn)。

5.基于CAN模擬器的調(diào)試與應(yīng)用

為節(jié)省調(diào)試時間和調(diào)試成本,在進行PXA1689與MCP2515的CAN總線接口設(shè)計時,編譯調(diào)試采用的是 武漢吉陽光電科技有限公司的GY8508 USB-CAN總線適配器。這樣,PC可以直接通過USB總線連接至CAN-bus網(wǎng)絡(luò),不用每次調(diào)試都在控制器的CAN數(shù)據(jù)就能構(gòu)成現(xiàn)場總線等CAN-bus網(wǎng)絡(luò)領(lǐng)域中的CAN-bus網(wǎng)絡(luò)控制節(jié)點,加快調(diào)試進度。

6.結(jié)論

采用帶SPI接口的MCP2515獨立CAN控制器給PXA168微處理器擴展CAN接口,既降低了硬件電路的復(fù)雜性,也保證了CAN總線通訊的穩(wěn)定性和效率。采用該方案擴展的CAN總線接口已經(jīng)應(yīng)用到自行開發(fā)的車載終端無線傳輸系統(tǒng)中,經(jīng)實驗表明,取得了良好的數(shù)據(jù)傳輸效果。

[1]基于S3C2410與MCP2515的CAN總線接口設(shè)計.黑龍江:佳木斯大學(xué)學(xué)報(自然科學(xué)版)(第29卷第2期)2011年03月.

[2]Microchip公司.Stand-A lon e CAN C ont rollerW ith SPI Interface,2003.

[3]鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天人學(xué)出版社,1996.

[4]廣州周立功單片機發(fā)展有限公司.CAN-bus規(guī)范V2.0版,http://www.zlgm cu.com.

[5]陶志東,周純杰,宋明權(quán),龔云生.基于PXA168的CAN總線通信設(shè)計與開發(fā)[J].可編程控制器與工廠自動化,2006,01.

[6]王繼國,吉吟東,孫新亞.CAN總線控制器MCP2515的原理及應(yīng)用[J].電測與儀表,2004,41(1).

梁芳芳(1976—),女,廣東梅州人,畢業(yè)于中山大學(xué),碩士,電子工程師,講師,現(xiàn)供職于廣東工程職業(yè)技術(shù)學(xué)院,主要研究方向:通信技術(shù)。

王力(1984—),男,廣東梅州人,畢業(yè)于電子科技大學(xué),碩士,現(xiàn)供職于廣東工程職業(yè)技術(shù)學(xué)院,研究方向:電子技術(shù)。

猜你喜歡
調(diào)試結(jié)構(gòu)
《形而上學(xué)》△卷的結(jié)構(gòu)和位置
論結(jié)構(gòu)
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結(jié)構(gòu)的應(yīng)用
模具制造(2019年3期)2019-06-06 02:10:54
基于航拍無人機的設(shè)計與調(diào)試
電子制作(2018年12期)2018-08-01 00:47:44
核電廠主給水系統(tǒng)調(diào)試
中國核電(2017年1期)2017-05-17 06:10:11
無線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
電子制作(2017年19期)2017-02-02 07:08:38
論《日出》的結(jié)構(gòu)
調(diào)壓柜的調(diào)試與試運行探討
工業(yè)電氣設(shè)備控制系統(tǒng)的安裝與調(diào)試
音頻處理器的調(diào)試
主站蜘蛛池模板: 日韩麻豆小视频| 在线观看网站国产| 久久精品丝袜| 中文字幕人妻av一区二区| 亚洲日韩精品欧美中文字幕 | 2021国产精品自拍| 日韩欧美中文字幕在线精品| 玖玖精品视频在线观看| 久综合日韩| 亚洲av成人无码网站在线观看| 国产精品网址你懂的| 欧美a√在线| 国产精品香蕉在线| 亚洲欧美一区二区三区图片| 日韩av无码精品专区| a级毛片免费看| 欧美成人手机在线观看网址| 全部免费毛片免费播放| 日韩在线播放欧美字幕| 久久综合一个色综合网| 国产精品毛片一区视频播| 久青草网站| 亚洲天堂成人在线观看| 青青国产视频| 午夜精品久久久久久久无码软件 | 日本午夜影院| 就去吻亚洲精品国产欧美| 日韩免费毛片| 久久久久免费精品国产| 国产精品大白天新婚身材| 国产在线观看成人91| 青草国产在线视频| 久久久黄色片| 国产日韩精品欧美一区喷| 国产欧美亚洲精品第3页在线| 日韩视频福利| 一本大道视频精品人妻| 99久久99这里只有免费的精品| 欧美a√在线| 秘书高跟黑色丝袜国产91在线 | 欧美成一级| 强奷白丝美女在线观看| 免费福利视频网站| 欧美 亚洲 日韩 国产| 国产一区二区三区日韩精品| 国产乱子精品一区二区在线观看| 人妻丰满熟妇αv无码| 久久青草免费91线频观看不卡| 丰满的少妇人妻无码区| a天堂视频| 欧美精品综合视频一区二区| 欧美成人怡春院在线激情| 精品综合久久久久久97超人| 久久毛片基地| 青青草综合网| 91毛片网| 亚洲天堂区| 91精品福利自产拍在线观看| 亚洲免费黄色网| 人人91人人澡人人妻人人爽| 亚洲精品第一页不卡| 亚洲综合色吧| 一本色道久久88| 日韩福利在线视频| 国产成人精品视频一区二区电影 | 亚洲人成网站色7799在线播放| 久久免费成人| 四虎精品免费久久| 国产黄色爱视频| 国产无码网站在线观看| 日本草草视频在线观看| 国产不卡一级毛片视频| 国产日本欧美亚洲精品视| 国产网友愉拍精品视频| 蜜桃视频一区二区| 成年av福利永久免费观看| 天天综合天天综合| 欧美天天干| 国产免费精彩视频| 99re这里只有国产中文精品国产精品 | 国产不卡网| 国产二级毛片|