《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > WinCE系統雙CAN構建方案--英創嵌入式解決方案

WinCE系統雙CAN構建方案--英創嵌入式解決方案

2009-01-20
作者:成都英創信息技術有限公司
WinCE系統雙CAN構建方案
文章來源:http://www.emtronix.com/case/case2008190.html
??????? CAN(Controller Area Network)即控制器局域網,由于具有高性能、高可靠性以及簡單的網絡結構,在工業系統中越來越受到人們的重視,并迅速成為了目前國際上應用最廣泛的現場總線之一。 ? ??????? 英創提供的EM9000系列ARM9嵌入式主板,包括EM9000、EM9260、EM9360等多種型號,都預裝了正版WinCE操作系統,且帶有標準CAN通訊接口。與板上其他標準通訊接口一樣,英創公司為所有EM9000系列嵌入式主板的CAN接口配置了標準的WinCE流式驅動程序,應用程序可以通過打開文件的進行讀寫的標準方式實現對CAN總線接口的數據通訊。本文側重于介紹CAN通訊接口,下面以EM9000嵌入式主板為例,介紹如何利用英創的ARM9嵌入式主板快速構建雙CAN接口的方案。 ?

硬件組成

??????? 英創提供的系列ARM9嵌入式主板,除EM9160嵌入式主板外,所有的ARM9主板上均可直接支持一個CAN接口。ETA701是英創公司提供的基于ISA總線擴展的一個CAN模塊,可以通過ISA總線外接一個ETA701模塊,即可構成一個雙CAN系統。 ?

? ??????? EM9000嵌入式主板和ETA701模塊提供的CAN均采用了PHILIPS半導體公司的SJA1000T CAN總線控制器,SJA1000是一款獨立的控制器,主要用于汽車和一般工業環境中的控制器局域網絡(CAN)芯片。它是PHILIPS半導體PCA82C200 CAN控制器(BasicCAN)的替代產品,而且它增加了一種新的工作模式(PeliCAN),這種模式支持具有很多新特性的CAN 2.0B協議。 ? ??????? EM9000嵌入式主板和ETA701模塊的CAN通訊接口可提供高達1Mbps的數據傳輸速率,當采用5Kbps的的數據傳輸速率時其通訊距離最高可達到10KM。硬件的錯誤檢定特性也增強了CAN的抗電磁干擾能力,這給數據的遠程可靠傳輸提供了有利保證。 ? ??????? 在EM9000嵌入式主板和ETA701模塊的CAN通訊接口根據用戶的需要分為兩種:一種帶光電隔離,一種不帶光電隔離。帶光電隔離CAN總線通訊模塊的CAN收發器端的所有信號和電源與其它部分完全隔離,可承受至少1Kv(有效值)的電壓沖擊。

CAN接口驅動函數

一、CAN報文的幀格式 ? ??????? 在CAN2.0B中存在兩種不同的幀格式,其主要的區別在于標識符的長度,具有11位標識符的幀稱為標準幀,而包括有29位標識符的幀稱為擴展幀。下面分別介紹數據幀的格式。 ? 1、CAN2.0B標準幀 ? ??????? CAN標準幀信息為11個字節,包括兩部分:信息和數據部分。前3個字節為信息部分,如圖所示: ?
? D7 D6 D5 D4 D3 D2 D1 D0
字節1 FF RTR X X DLC(數據長度
字節2 (報文識別碼)ID.10~ID.3
字節3 ID.2~ID.0 RTR ?
字節4 數據1
字節5 數據2
字節6 數據3
字節7 數據4
字節8 數據5
字節9 數據6
字節10 數據7
字節11 數據8
? 注: 1)字節1為幀信息。D7位表示幀格式,在標準幀中,FF=0;D6位表示幀的類型,RTR=0表示為數據幀,RTR=1表示為遠程幀,在一般的數據通訊中,只使用數據幀;DLC表示數據幀實際的數據長度。 2)字節2、字節3為報文識別碼,11位有效。 3)字節4~字節11為數據幀的實際數據,遠程幀時無效。 ? 2、CAN2.0B擴展幀 ? ??????? CAN標準幀信息為13個字節,包括兩部分:信息和數據部分。前5個字節為信息部分,如圖所示: ?
? D7 D6 D5 D4 D3 D2 D1 D0
字節1 FF RTR X X DLC(數據長度)
字節2 (報文識別碼)ID.28~ID.21
字節3 ID.20~ID.13
字節4 ID.12~ID.5
字節5 ID.4~ID.0 ?
字節6 數據1
字節7 數據2
字節8 數據3
字節9 數據4
字節10 數據5
字節11 數據6
字節12 數據7
字節13 數據8
? 注: 1)字節1為幀信息。D7位表示幀格式,在擴展幀中,FF=1;D6位表示幀的類型,RTR=0表示為數據幀,RTR=1表示為遠程幀;DLC表示數據幀實際的數據長度。 2)字節2~字節5為報文識別碼,29位有效。 3)字節6~字節13為數據幀的實際數據,遠程幀時無效。 ? 二、啟動CAN通訊接口 ? ??????? 英創公司提供的CAN通訊接口的驅動程序采用的是WinCE下流式驅動程序(Stream Device Driver),并在此驅動程序的基礎上為客戶封裝了一套簡單實用的API函數。各個函數的定義在can_api.h文件下,在該頭文件中對于各個API函數均有相應的中文說明。 ? ??????? 作為流式接口函數通常和文件系統的API函數(如CreateFile)緊密匹配的,因此在使用英創提供的CAN接口的API函數時,首先需要調用CreateFile(…)來獲取CAN接口設備的句柄handle,如使用CAN1通訊口,可以調用以下函數: ? m_hCAN=CreateFile(_T(“CAN1:”), GENERIC_READ|GENERIC_WRITE, 0,
????????????????????????????????????????????? ?NULL, OPEN_EXISTING, 0, NULL); ? ??????? 對于CAN2通訊接口,只需將其中的名稱換成 _T(“CAN2:”)即可。在創建CAN設備得到有效的handle之后,就可以調用can_api.h中定義的相應函數來啟動CAN設備接口。 ? ????????BOOL ?CAN_StartChip (HANDLE hDevice); ? ??????? 至此CAN通訊接口進入工作模式。 ? 三、設置CAN通訊接口參數 ? ??????? 在進行CAN數據通訊之前,需要設置和CAN通訊相關的一些參數,包括CAN通訊的波特率設置以及對接收過濾器的設置。 ? BOOL?? CAN_SetBaudRate(HANDLE hDevice, BYTE *index); 用于設置CAN通訊的波特率,波特率的設置范圍包括:10kbps~1Mbps。具體的定義請參見can_api.h文件中的注釋說明。 ? ??????? 通過配置接收過濾器,CAN通訊接口可以實現只接收標識符也接收過濾器預設值相一致的報文。接收過濾器由接收碼寄存器ACRn和接收屏蔽碼寄存器AMRn來定義的,還可以選擇兩種不同的過濾器模式,單過濾器模式或者雙過濾器模式。關于ACR、AMR中各位的定義,請參見SJA1000的數據手冊,這里就不再贅述。在英創提供的API函數中,用戶可以調用以下函數來實現接收過濾器的設置: ? BOOL CAN_SetGlobalAcceptanceFilter(? HANDLE hDevice, ?????????????????????????????????????????????????????????????? ?????? ? ? BYTE *AcceptanceFilter, BYTE size) ? 四、CAN通訊接口的數據收發 ? ??????? 在英創公司提供的雙CAN方案中,CAN通訊的數據收發均采用的中斷方式,驅動程序中已自動完成了數據的收發,以及內部定義的CAN接收緩沖區和發送緩沖區的管理。對于用戶開發應用程序來說,只需要調用英創公司提供的CAN通訊API函數中的收發函數即可。下圖為CAN驅動程序的數據流和事件的關系圖。 ?

??????? 在進行CAN通訊應用程序的開發時,對于CAN通訊數據接收線程可以采用兩種方式:一種可以采用定時查詢,即定時調用函數CAN_GetNextReceivedFrame( …)檢測是否有接收到CAN報文數據;一種可以利用操作系統的消息機制,采用事件響應的方式,一旦硬件接收的數據報文,底層的驅動接收程序會自動讀取報文,同時發送一個接收事件。作為應用程序的接收線程在等待到該事件后,調用CAN_GetNextReceivedFrame(…)即可進行CAN數據報文的讀取。需要注意的是函數CAN_GetNextReceivedFrame每執行一次,只是讀取了一幀CAN數據報文,如果在應用程序中需要將最新的數據全部讀出,只需反復調用該函數,直到該函數的返回值為FALSE。

??????? 接收線程部分代碼: ? DWORD CEM9000_CAN::ReadThreadFunc( LPVOID lparam ) { ????? CEM9000_CAN *ceCAN = (CEM9000_CAN*)lparam; ????? BOOL????????? bResult; ????? while( 1 ) ????? { ????? ?????? if(WaitForSingleObject(ceCAN->m_hReadCloseEvent,0 )==WAIT_OBJECT_0 ) ????? ????? ?{ ??????????????????? break; ????? ?????? } ????? ?????? // 等待接收事件觸發,使用以下代碼 ?????????? ? WaitForSingleObject( ceCAN->m_hRxEvent, INFINITE ); ? ????? ????? ?// 若采用定時查詢,則調用Sleep(..)即可,Sleep的時間由應用程序確定 ???????????? // Sleep( 50 ); ? ???????????? ceCAN->m_nRxCounter = 0; ???????????? for( ; ; ) ??????????? ?{ ?????????????????? // 讀取已接收的所有數據幀 ???? ??????????????? bResult=CAN_GetNextReceivedFrame(ceCAN->m_hCAN, ???????????????????????????? ??????????????????????????????????????????????????????? ????? ?? &ceCAN->RxMFrame[ceCAN->m_nRxCounter] ); ???????????????????? if( !bResult ) ???????????????????? { ????????????????????????? break; ???????????????????? } ???????????????????? ceCAN->m_nRxCounter++; ???????????? } ???????????? if(ceCAN->m_nRxCounter>0 ) ????? ????? ?{ ??????????????????? // 調用回調函數,進行必要的數據處理 ??????????????????? ceCAN->OnRead( ceCAN->m_pCANOwner ); ????? ?????? } ????? } return 0; } ? ? ??????? CAN數據報文的發送比較簡單,應用程序直接調用函數CAN_SendFrame(…)即可。 ? ??????? 英創公司針對CAN總線的應用提供圖形化的測試程序,用戶可以直接利用該程序進行CAN接口通訊基本收發測試。EM9000下的測試界面如下圖所示: ?

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲经典在线| 国产精品久久久久秋霞鲁丝| 欧美岛国激情| 亚洲美女一区| 亚洲欧洲综合另类在线| 亚洲精品免费观看| 国产精品一级二级三级| 国产毛片一区二区| 欧美日韩和欧美的一区二区| 91久久久精品| 欧美日韩日本网| 亚洲精品在线观看免费| 1769国内精品视频在线播放| 亚洲小说欧美另类婷婷| 老司机亚洲精品| 午夜老司机精品| 欧美精品久久久久久久| 免费成人在线视频网站| 欧美二区不卡| 西瓜成人精品人成网站| 欧美午夜片欧美片在线观看| 欧美日本中文| 午夜精品在线看| 亚洲欧洲一级| 在线精品高清中文字幕| 国产精品一二| 国产精品中文字幕欧美| 久久9热精品视频| 欧美成人一区二区三区片免费| 久久久久一区二区三区四区| 欧美不卡高清| 欧美视频专区一二在线观看| 欧美日韩免费精品| 欧美成va人片在线观看| 欧美日韩视频免费播放| 亚洲第一页自拍| 一区二区三区欧美| 欧美巨乳波霸| 每日更新成人在线视频| 亚洲理论电影网| 亚洲伦理自拍| 欧美资源在线观看| 国产精品护士白丝一区av| 欧美日韩在线精品| 欧美xxx在线观看| 亚洲精品日韩久久| 一本色道久久综合狠狠躁的推荐| 国产农村妇女精品一二区| 国产一区二区三区四区在线观看| 久久久青草青青国产亚洲免观| 亚洲欧美国产制服动漫| 欧美日韩久久| 国产精品久久久久久久久免费桃花| 国产精品一区二区女厕厕| 欧美一区中文字幕| 国产精品色一区二区三区| 欧美亚洲免费| 国产精品一区免费观看| 久久久久国产精品厨房| 欧美高清不卡| 亚洲精品专区| 国产精品素人视频| 亚洲一区二区三区在线观看视频| 国产精品一区二区三区免费观看| 亚洲激情不卡| 国产精品免费网站在线观看| 亚洲一区欧美一区| 国产日韩欧美一区| 在线观看欧美黄色| 在线色欧美三级视频| 亚洲精品一区二区三| 欧美激情一区二区三区| 国产偷国产偷亚洲高清97cao| 欧美福利精品| 欧美日韩亚洲一区二区三区| 欧美激情一区二区三区四区| av成人国产| 国产精品一级二级三级| 免费观看欧美在线视频的网站| 99国产精品国产精品毛片| 久久久精品久久久久| 午夜精品视频在线观看| 国产一区二区无遮挡| 亚洲一区二区在线播放| 亚洲狠狠婷婷| 美女日韩在线中文字幕| 亚洲一区二区在线播放| 91久久精品国产91久久性色| 欧美一乱一性一交一视频| 亚洲精品免费在线观看| 亚洲人成网站777色婷婷| 亚洲毛片在线| 久久久久九九九九| 久久精品一区蜜桃臀影院| 黄色一区二区在线| 另类天堂视频在线观看| 久久精视频免费在线久久完整在线看| 欧美日韩精品免费在线观看视频| 亚洲免费久久| 亚洲成色777777在线观看影院| 欧美h视频在线| 国产精品视频第一区| 一区二区三区毛片| 久久久夜夜夜| 亚洲国产精品va在看黑人| 国产精品大片免费观看| 亚洲精品一品区二品区三品区| 亚洲精品日本| 欧美精品黄色| 久久先锋资源| 国产精品99一区| 亚洲高清一二三区| 久久精品女人天堂| 国产精品一区二区在线| 好吊色欧美一区二区三区四区| 在线成人av网站| 欧美国产亚洲精品久久久8v| 在线观看精品一区| 影音先锋亚洲视频| 亚洲国产精品传媒在线观看| 久久国产一二区| 亚洲国产天堂久久综合网| 欧美一二三区精品| 国产精品久久久久久久久借妻| 久久激情综合| 亚洲欧洲日本专区| 久久综合久久综合这里只有精品| 亚洲一区在线看| 亚洲国产女人aaa毛片在线| 亚洲激情网站免费观看| 在线日韩欧美| 欧美日韩一区二区视频在线| 一区二区三区日韩| 狠狠色狠狠色综合日日tαg| 中文亚洲免费| 国产精品国产自产拍高清av王其| 亚洲三级免费电影| 久久久久久久综合狠狠综合| 在线成人av| 国产精品网站在线播放| 亚洲国产一区二区三区青草影视| 久久天堂精品| 欧美亚洲一区二区在线观看| 欧美激情精品久久久六区热门| 亚洲手机在线| 午夜精品亚洲| 亚洲日本欧美天堂| 亚洲午夜一区二区三区| 欧美色欧美亚洲另类七区| 欧美日韩一本到| 亚洲三级毛片| 久久精品水蜜桃av综合天堂| 亚洲视频在线观看免费| 亚洲视频成人| 尹人成人综合网| 136国产福利精品导航网址| 亚洲精品视频二区| 欧美日韩国产亚洲一区| 国产视频在线观看一区二区三区| 一区二区日韩欧美| 一区二区三区成人| 在线一区观看| 免费h精品视频在线播放| 欧美色欧美亚洲另类二区| 久久久精品免费视频| 欧美剧在线免费观看网站| 国产精品99久久久久久宅男| 亚洲高清色综合| 亚洲国内精品| 欧美高清在线精品一区| 亚洲自拍偷拍视频| 国产一区二区久久精品| 黄色亚洲在线| 久久精品国产99国产精品澳门| 欧美成人亚洲成人| 久久人人爽爽爽人久久久| 国自产拍偷拍福利精品免费一| 久久综合久久综合久久综合| 国产精品一二三| 狠狠色狠狠色综合日日91app| 亚洲欧美日韩在线一区| 久久精品观看| 欧美大片专区| 国产喷白浆一区二区三区| 午夜免费在线观看精品视频| 午夜精品视频在线| 欧美日韩1234| 国产一区二区三区免费观看| 欧美日韩成人综合天天影院| 性欧美激情精品| 国产欧美 在线欧美| 国内综合精品午夜久久资源| 亚洲男人的天堂在线观看| 欧美中文字幕在线| 欧美激情导航| av成人免费在线观看| 欧美日韩一区在线| 国产日韩欧美三区| 国产亚洲制服色| 欧美精品综合| 亚洲永久免费av| 国产午夜亚洲精品不卡| 欧美va日韩va| 午夜一级在线看亚洲| 欧美另类一区| 久久人91精品久久久久久不卡| 欧美在线免费播放| 亚洲人成在线播放网站岛国| 正在播放日韩| av不卡在线| 欧美mv日韩mv亚洲| 亚洲三级免费电影| 欧美精品二区| 亚洲福利在线看| 亚洲美女中文字幕| 中国成人亚色综合网站| 国产综合久久久久影院| 国产精品一区二区在线观看网站| 欧美r片在线| 国产欧美日韩不卡免费| 亚洲黄色成人| 99国产精品99久久久久久粉嫩| 国产专区欧美专区| 亚洲国产一区二区三区高清| 欧美凹凸一区二区三区视频| 欧美fxxxxxx另类| 一本色道久久综合一区| 免费一级欧美片在线观看| 欧美aⅴ99久久黑人专区| 欧美激情亚洲国产| 激情成人亚洲| 亚洲一品av免费观看| 国产精品日韩久久久| 亚洲免费视频中文字幕| 国产精品视频yy9299一区| 欧美成人黑人xx视频免费观看| 激情婷婷久久| 亚洲一区二区精品视频| 性欧美video另类hd性玩具| 欧美激情视频网站| 亚洲深夜福利| 美女91精品| 日韩视频在线一区二区| 在线播放国产一区中文字幕剧情欧美| 亚洲免费伊人电影在线观看av| 国产精品久久91| 久久精品视频免费观看| 国产主播在线一区| 久久亚洲国产精品一区二区| 久久另类ts人妖一区二区| 免费看的黄色欧美网站| 黑人一区二区三区四区五区| 欧美+亚洲+精品+三区| 久久精品视频在线播放| 欧美日韩免费在线| 最近中文字幕mv在线一区二区三区四区| 欧美另类变人与禽xxxxx| 在线看国产一区| 国产欧美婷婷中文| 久久―日本道色综合久久| 亚洲欧美在线一区二区| 久久久国产精品一区二区三区| 亚洲一区二区三区精品动漫| 久久永久免费| 亚洲无限乱码一二三四麻| 久久综合狠狠综合久久综青草| 国产一区在线视频| 欧美日韩在线一区二区三区| 欧美一区午夜视频在线观看| 欧美一区二区免费观在线| 伊人精品成人久久综合软件| 黄色亚洲免费| 玖玖综合伊人| 久久亚洲二区| 欧美专区在线播放| 欧美日韩国产麻豆| 麻豆久久久9性大片| 国产在线观看一区| 亚洲一二三区在线| 国产精品日日摸夜夜添夜夜av| 伊人成人在线视频| 国产精品黄页免费高清在线观看| 国产区在线观看成人精品| 欧美性做爰毛片| 亚洲欧洲在线播放| 国产精品免费电影| 欧美精品18videos性欧美| 欧美精品一区视频| 麻豆免费精品视频| 国产乱码精品| 国产精自产拍久久久久久蜜| 日韩视频在线观看| 亚洲精品网站在线播放gif| 精品1区2区3区4区| 国产精品美女久久久浪潮软件| 国产字幕视频一区二区| 欧美成人蜜桃| 欧美激情一区二区三区四区| 欧美自拍偷拍| 99re6热在线精品视频播放速度| 国产精品一区二区久久精品| 一区在线播放| 亚洲午夜精品网| 欧美日本在线视频| 一本色道综合亚洲| 国产精品区一区二区三区| 久久久国产亚洲精品| 一本高清dvd不卡在线观看| 久久亚洲精品欧美| 影音先锋日韩资源| 久久精品国产第一区二区三区最新章节| 在线视频免费在线观看一区二区| 国产一区二区三区不卡在线观看| 中文久久精品| 欧美国产91| 国产亚洲精品美女| 国产精品久久久久久久久久免费| 国产日韩在线看片| 国产精品国产三级国产aⅴ浪潮| 欧美视频手机在线| 欧美另类在线观看| 中文久久乱码一区二区| 欧美精品一区二区三区久久久竹菊| 欧美日韩在线观看一区二区| 亚洲国产日韩欧美在线动漫| 西西裸体人体做爰大胆久久久| 国产精品成人av性教育| 国产亚洲欧美色|