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)試
主站蜘蛛池模板: 国产超碰一区二区三区| 666精品国产精品亚洲| 久草热视频在线| 亚洲手机在线| 全午夜免费一级毛片| 狠狠综合久久久久综| 呦女亚洲一区精品| 亚洲美女一区| 国产va欧美va在线观看| 99热最新网址| 精品视频第一页| 亚洲精品视频在线观看视频| 久久国产高清视频| 国产XXXX做受性欧美88| 在线观看av永久| 欧美午夜网| 91久久天天躁狠狠躁夜夜| 国产精品手机视频一区二区| 国模沟沟一区二区三区| 欧美一级在线| 国产成人综合久久精品尤物| 丁香婷婷综合激情| 欧美a网站| 综合色区亚洲熟妇在线| 久久中文电影| 国产亚洲精品97AA片在线播放| 婷婷综合亚洲| 狼友视频一区二区三区| 欧美日一级片| 亚洲日本在线免费观看| 国产精品亚洲综合久久小说| 动漫精品啪啪一区二区三区| 黄色国产在线| 五月天综合网亚洲综合天堂网| 精品国产免费观看| 国产免费a级片| 国产麻豆aⅴ精品无码| 欧美丝袜高跟鞋一区二区| 国产高清又黄又嫩的免费视频网站| 亚洲视频色图| 久久五月天国产自| 99视频精品在线观看| a亚洲视频| 欧美成人午夜影院| 色噜噜狠狠色综合网图区| 亚洲精品中文字幕无乱码| 色老头综合网| 免费一极毛片| 一本色道久久88亚洲综合| 欧美伊人色综合久久天天| 精品视频一区二区观看| 久久福利片| 91国语视频| 69国产精品视频免费| 亚洲日本一本dvd高清| 国产高潮流白浆视频| 中文字幕在线看视频一区二区三区| 免费在线a视频| 国产精品无码久久久久久| 国内精品自在自线视频香蕉| 亚洲AV人人澡人人双人| 找国产毛片看| 国产精品深爱在线| 国产91久久久久久| 成人一级免费视频| 精品视频福利| 亚洲三级片在线看| 久久精品人人做人人爽| 在线va视频| 99久久精彩视频| 9久久伊人精品综合| 伊人久久精品亚洲午夜| 中文字幕 91| 久久这里只有精品8| 77777亚洲午夜久久多人| 亚洲人成影视在线观看| 国产精品青青| 久久无码av一区二区三区| 国产精品手机视频| 国产成人精品免费av| 日日拍夜夜嗷嗷叫国产| 国产精品尤物在线|