在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用英創(chuàng)ARM9嵌入式主板快速構(gòu)建雙CAN接口的方案

英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2019-10-08 11:37 ? 次閱讀

CAN(Controller Area Network)即控制器局域網(wǎng),由于具有高性能、高可靠性以及簡(jiǎn)單的網(wǎng)絡(luò)結(jié)構(gòu),在工業(yè)系統(tǒng)中越來越受到人們的重視,并迅速成為了目前國際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。

英創(chuàng)提供的EM9000系列ARM9嵌入式主板,包括EM9000、EM9260、EM9360等多種型號(hào),都預(yù)裝了正版WinCE操作系統(tǒng),且?guī)в袠?biāo)準(zhǔn)CAN通訊接口。與板上其他標(biāo)準(zhǔn)通訊接口一樣,英創(chuàng)公司為所有EM9000系列嵌入式主板的CAN接口配置了標(biāo)準(zhǔn)的WinCE流式驅(qū)動(dòng)程序,應(yīng)用程序可以通過打開文件的進(jìn)行讀寫的標(biāo)準(zhǔn)方式實(shí)現(xiàn)對(duì)CAN總線接口的數(shù)據(jù)通訊。本文側(cè)重于介紹CAN通訊接口,下面以EM9000嵌入式主板為例,介紹如何利用英創(chuàng)的ARM9嵌入式主板快速構(gòu)建雙CAN接口的方案。

硬件組成

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

EM9000嵌入式主板和ETA701模塊提供的CAN均采用了PHILIPS半導(dǎo)體公司的SJA1000T CAN總線控制器,SJA1000是一款獨(dú)立的控制器,主要用于汽車和一般工業(yè)環(huán)境中的控制器局域網(wǎng)絡(luò)(CAN)芯片。它是PHILIPS半導(dǎo)體PCA82C200 CAN控制器(BasicCAN)的替代產(chǎn)品,而且它增加了一種新的工作模式(PeliCAN),這種模式支持具有很多新特性的CAN 2.0B協(xié)議。

EM9000嵌入式主板和ETA701模塊的CAN通訊接口可提供高達(dá)1Mbps的數(shù)據(jù)傳輸速率,當(dāng)采用5Kbps的的數(shù)據(jù)傳輸速率時(shí)其通訊距離最高可達(dá)到10KM。硬件的錯(cuò)誤檢定特性也增強(qiáng)了CAN的抗電磁干擾能力,這給數(shù)據(jù)的遠(yuǎn)程可靠傳輸提供了有利保證。

在EM9000嵌入式主板和ETA701模塊的CAN通訊接口根據(jù)用戶的需要分為兩種:一種帶光電隔離,一種不帶光電隔離。帶光電隔離CAN總線通訊模塊的CAN收發(fā)器端的所有信號(hào)電源與其它部分完全隔離,可承受至少1Kv(有效值)的電壓沖擊。

CAN接口驅(qū)動(dòng)函數(shù)

一、CAN報(bào)文的幀格式

在CAN2.0B中存在兩種不同的幀格式,其主要的區(qū)別在于標(biāo)識(shí)符的長度,具有11位標(biāo)識(shí)符的幀稱為標(biāo)準(zhǔn)幀,而包括有29位標(biāo)識(shí)符的幀稱為擴(kuò)展幀。下面分別介紹數(shù)據(jù)幀的格式。

1、CAN2.0B標(biāo)準(zhǔn)幀

CAN標(biāo)準(zhǔn)幀信息為11個(gè)字節(jié),包括兩部分:信息和數(shù)據(jù)部分。前3個(gè)字節(jié)為信息部分,如圖所示:

注:

1、字節(jié)1為幀信息。D7位表示幀格式,在標(biāo)準(zhǔn)幀中,F(xiàn)F=0;D6位表示幀的類型,RTR=0表示為數(shù)據(jù)幀,RTR=1表示為遠(yuǎn)程幀,在一般的數(shù)據(jù)通訊中,只使用數(shù)據(jù)幀;DLC表示數(shù)據(jù)幀實(shí)際的數(shù)據(jù)長度。

2、字節(jié)2、字節(jié)3為報(bào)文識(shí)別碼,11位有效。

3、字節(jié)4~字節(jié)11為數(shù)據(jù)幀的實(shí)際數(shù)據(jù),遠(yuǎn)程幀時(shí)無效。

2、CAN2.0B擴(kuò)展幀

CAN標(biāo)準(zhǔn)幀信息為13個(gè)字節(jié),包括兩部分:信息和數(shù)據(jù)部分。前5個(gè)字節(jié)為信息部分,如圖所示:

注:

1、字節(jié)1為幀信息。D7位表示幀格式,在擴(kuò)展幀中,F(xiàn)F=1;D6位表示幀的類型,RTR=0表示為數(shù)據(jù)幀,RTR=1表示為遠(yuǎn)程幀;DLC表示數(shù)據(jù)幀實(shí)際的數(shù)據(jù)長度。

2、字節(jié)2~字節(jié)5為報(bào)文識(shí)別碼,29位有效。

3、字節(jié)6~字節(jié)13為數(shù)據(jù)幀的實(shí)際數(shù)據(jù),遠(yuǎn)程幀時(shí)無效。

二、啟動(dòng)CAN通訊接口

英創(chuàng)公司提供的CAN通訊接口的驅(qū)動(dòng)程序采用的是WinCE下流式驅(qū)動(dòng)程序(Stream Device Driver),并在此驅(qū)動(dòng)程序的基礎(chǔ)上為客戶封裝了一套簡(jiǎn)單實(shí)用的API函數(shù)。各個(gè)函數(shù)的定義在can_api.h文件下,在該頭文件中對(duì)于各個(gè)API函數(shù)均有相應(yīng)的中文說明。

作為流式接口函數(shù)通常和文件系統(tǒng)的API函數(shù)(如CreateFile)緊密匹配的,因此在使用英創(chuàng)提供的CAN接口的API函數(shù)時(shí),首先需要調(diào)用CreateFile(…)來獲取CAN接口設(shè)備的句柄handle,如使用CAN1通訊口,可以調(diào)用以下函數(shù):

m_hCAN=CreateFile(_T(“CAN1:”), GENERIC_READ|GENERIC_WRITE, 0,NULL, OPEN_EXISTING, 0, NULL);

對(duì)于CAN2通訊接口,只需將其中的名稱換成 _T(“CAN2:”)即可。在創(chuàng)建CAN設(shè)備得到有效的handle之后,就可以調(diào)用can_api.h中定義的相應(yīng)函數(shù)來啟動(dòng)CAN設(shè)備接口。

BOOL CAN_StartChip (HANDLE hDevice);

至此CAN通訊接口進(jìn)入工作模式。

三、設(shè)置CAN通訊接口參數(shù)

在進(jìn)行CAN數(shù)據(jù)通訊之前,需要設(shè)置和CAN通訊相關(guān)的一些參數(shù),包括CAN通訊的波特率設(shè)置以及對(duì)接收過濾器的設(shè)置。

BOOL CAN_SetBaudRate(HANDLE hDevice, BYTE *index);

// 用于設(shè)置CAN通訊的波特率,波特率的設(shè)置范圍包括:10kbps~1Mbps。具體的定義請(qǐng)參見can_api.h文件中的注釋說明

通過配置接收過濾器,CAN通訊接口可以實(shí)現(xiàn)只接收標(biāo)識(shí)符也接收過濾器預(yù)設(shè)值相一致的報(bào)文。接收過濾器由接收碼寄存器ACRn和接收屏蔽碼寄存器AMRn來定義的,還可以選擇兩種不同的過濾器模式,單過濾器模式或者雙過濾器模式。關(guān)于ACR、AMR中各位的定義,請(qǐng)參見SJA1000的數(shù)據(jù)手冊(cè),這里就不再贅述。在英創(chuàng)提供的API函數(shù)中,用戶可以調(diào)用以下函數(shù)來實(shí)現(xiàn)接收過濾器的設(shè)置:

BOOL CAN_SetGlobalAcceptanceFilter( HANDLE hDevice, BYTE *AcceptanceFilter, BYTE size)

四、CAN通訊接口的數(shù)據(jù)收發(fā)

在英創(chuàng)公司提供的雙CAN方案中,CAN通訊的數(shù)據(jù)收發(fā)均采用的中斷方式,驅(qū)動(dòng)程序中已自動(dòng)完成了數(shù)據(jù)的收發(fā),以及內(nèi)部定義的CAN接收緩沖區(qū)和發(fā)送緩沖區(qū)的管理。對(duì)于用戶開發(fā)應(yīng)用程序來說,只需要調(diào)用英創(chuàng)公司提供的CAN通訊API函數(shù)中的收發(fā)函數(shù)即可。下圖為CAN驅(qū)動(dòng)程序的數(shù)據(jù)流和事件的關(guān)系圖。

在進(jìn)行CAN通訊應(yīng)用程序的開發(fā)時(shí),對(duì)于CAN通訊數(shù)據(jù)接收線程可以采用兩種方式:一種可以采用定時(shí)查詢,即定時(shí)調(diào)用函數(shù)CAN_GetNextReceivedFrame( …)檢測(cè)是否有接收到CAN報(bào)文數(shù)據(jù);一種可以利用操作系統(tǒng)的消息機(jī)制,采用事件響應(yīng)的方式,一旦硬件接收的數(shù)據(jù)報(bào)文,底層的驅(qū)動(dòng)接收程序會(huì)自動(dòng)讀取報(bào)文,同時(shí)發(fā)送一個(gè)接收事件。作為應(yīng)用程序的接收線程在等待到該事件后,調(diào)用CAN_GetNextReceivedFrame(…)即可進(jìn)行CAN數(shù)據(jù)報(bào)文的讀取。需要注意的是函數(shù)CAN_GetNextReceivedFrame每執(zhí)行一次,只是讀取了一幀CAN數(shù)據(jù)報(bào)文,如果在應(yīng)用程序中需要將最新的數(shù)據(jù)全部讀出,只需反復(fù)調(diào)用該函數(shù),直到該函數(shù)的返回值為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;

}

// 等待接收事件觸發(fā),使用以下代碼

WaitForSingleObject( ceCAN->m_hRxEvent, INFINITE );

// 若采用定時(shí)查詢,則調(diào)用Sleep(..)即可,Sleep的時(shí)間由應(yīng)用程序確定

// Sleep( 50 );

ceCAN->m_nRxCounter = 0;

for( ; ; )

{

// 讀取已接收的所有數(shù)據(jù)幀

bResult=CAN_GetNextReceivedFrame(ceCAN->m_hCAN,

&ceCAN->RxMFrame[ceCAN->m_nRxCounter] );

if( !bResult )

{

break;

}

ceCAN->m_nRxCounter++;

}

if(ceCAN->m_nRxCounter>0 )

{

// 調(diào)用回調(diào)函數(shù),進(jìn)行必要的數(shù)據(jù)處理

ceCAN->OnRead( ceCAN->m_pCANOwner );

}

}

return 0;

}

CAN數(shù)據(jù)報(bào)文的發(fā)送比較簡(jiǎn)單,應(yīng)用程序直接調(diào)用函數(shù)CAN_SendFrame(…)即可。

英創(chuàng)公司針對(duì)CAN總線的應(yīng)用提供圖形化的測(cè)試程序,用戶可以直接利用該程序進(jìn)行CAN接口通訊基本收發(fā)測(cè)試。EM9000下的測(cè)試界面如下圖所示:

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • arm9
    +關(guān)注

    關(guān)注

    2

    文章

    290

    瀏覽量

    55419
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6094

    瀏覽量

    36067
  • CAN接口
    +關(guān)注

    關(guān)注

    3

    文章

    79

    瀏覽量

    26155
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    創(chuàng)嵌入式主板的無線通訊解決方案

    WiFi模塊。ETA6210模塊繼續(xù)保持了PPP撥號(hào)模式,使得無論是Linux平臺(tái)的主板還是CE平臺(tái)的主板,都能方便的使用。  下表列出了當(dāng)前創(chuàng)
    發(fā)表于 03-24 14:00

    ARM9嵌入式主板看門狗的使用方法

    創(chuàng)ARM9嵌入式主板Watchdog的使用
    發(fā)表于 09-26 10:06

    VS2005與創(chuàng)ARM9嵌入式模塊連接和調(diào)試步驟

    使用VS2005連接和調(diào)試創(chuàng)ARM9嵌入式模塊
    發(fā)表于 09-27 13:05

    ARM9嵌入式技術(shù)及Linux實(shí)驗(yàn)指導(dǎo)

    ARM9嵌入式技術(shù)及
    發(fā)表于 02-09 15:19 ?70次下載

    ARM9嵌入式USB技術(shù)開發(fā)

    ARM9嵌入式USB技術(shù)開發(fā)
    發(fā)表于 10-31 09:02 ?5次下載
    <b class='flag-5'>ARM9</b>的<b class='flag-5'>嵌入式</b>USB技術(shù)開發(fā)

    創(chuàng)信息技術(shù)VS2005調(diào)試ARM9核心板簡(jiǎn)介

    創(chuàng)公司自2007年開始陸續(xù)推出一系列以ARM9 CPU為核心的嵌入式主板(如EM9000、EM9260),這些高性能的工控
    的頭像 發(fā)表于 10-31 15:03 ?2057次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b>信息技術(shù)VS2005調(diào)試<b class='flag-5'>ARM9</b>核心板簡(jiǎn)介

    創(chuàng)信息技術(shù)9260系列嵌入式主板調(diào)試淺談

    創(chuàng)公司自2007年開始陸續(xù)推出一系列以ARM9 CPU為核心的嵌入式主板,這些高性能的工控主板
    的頭像 發(fā)表于 11-01 09:24 ?2497次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b>信息技術(shù)9260系列<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>調(diào)試淺談

    創(chuàng)信息技術(shù)ARM9工控主板WinCE應(yīng)用程序遠(yuǎn)程控制應(yīng)用

    創(chuàng)公司推出的ARM9嵌入式工控主板產(chǎn)品系列,均預(yù)裝了正版的WinCE5.0操作系統(tǒng)。微軟的WINCE實(shí)時(shí)多任務(wù)操作系統(tǒng)是
    的頭像 發(fā)表于 11-04 09:28 ?1890次閱讀

    創(chuàng)信息技術(shù)ARM9工控主板內(nèi)嵌AD概述

    創(chuàng)公司推出的ARM9 嵌入式工控主板產(chǎn)品系列,均預(yù)裝了正版WinCE5.0 操作系統(tǒng)。
    的頭像 發(fā)表于 11-04 09:43 ?2875次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b>信息技術(shù)<b class='flag-5'>ARM9</b>工控<b class='flag-5'>主板</b>內(nèi)嵌AD概述

    創(chuàng)信息技術(shù)ARM9主板上運(yùn)行案例解析

    創(chuàng)今年(2009年)的市場(chǎng)活動(dòng)中,為了讓客戶更好地完成產(chǎn)品應(yīng)用開發(fā),創(chuàng)向第一次購買創(chuàng)
    的頭像 發(fā)表于 11-12 10:20 ?1629次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b>信息技術(shù)<b class='flag-5'>ARM9</b><b class='flag-5'>主板</b>上運(yùn)行案例解析

    創(chuàng)信息技術(shù)CAN接口COM組件在C#語言領(lǐng)域應(yīng)用

     創(chuàng)ARM9工控主板的一個(gè)很大的特色就是提供了標(biāo)準(zhǔn)的CAN總線通訊接口,客戶可以方便地在工業(yè)現(xiàn)
    的頭像 發(fā)表于 11-12 10:34 ?2624次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b>信息技術(shù)<b class='flag-5'>CAN</b><b class='flag-5'>接口</b>COM組件在C#語言領(lǐng)域應(yīng)用

    創(chuàng)信息技術(shù)ARM9工控板遠(yuǎn)程抓拍圖像應(yīng)用介紹

    創(chuàng)ARM9工控主板功能齊全、體積小巧、性能穩(wěn)定、超低價(jià)格的嵌入式主板產(chǎn)品。
    的頭像 發(fā)表于 11-13 09:41 ?2241次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b>信息技術(shù)<b class='flag-5'>ARM9</b>工控板遠(yuǎn)程抓拍圖像應(yīng)用介紹

    創(chuàng)信息技術(shù)ARM9主板進(jìn)行連接調(diào)試的兩種方法

    在我們提供給用戶的《使用VS2005連接和調(diào)試創(chuàng)ARM9嵌入式模塊》一文中,我們分別以在EM9000上和在EM9260上為例講述了兩種對(duì)基于WinCE的
    的頭像 發(fā)表于 01-14 11:29 ?1615次閱讀

    創(chuàng)信息技術(shù)基于創(chuàng)主板快速構(gòu)建整機(jī)應(yīng)用方案簡(jiǎn)介

    創(chuàng)公司的嵌入式工控主板配置了豐富的接口資源,利用這些資源經(jīng)過簡(jiǎn)單的擴(kuò)展就可
    的頭像 發(fā)表于 02-12 10:57 ?1511次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b>信息技術(shù)基于<b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>主板</b><b class='flag-5'>快速</b><b class='flag-5'>構(gòu)建</b>整機(jī)應(yīng)用<b class='flag-5'>方案</b>簡(jiǎn)介

    ARM9嵌入式系統(tǒng)復(fù)習(xí)重點(diǎn)

    ARM9嵌入式系統(tǒng)復(fù)習(xí)重點(diǎn)(嵌入式開發(fā)主要內(nèi)容)-文檔為ARM9嵌入式系統(tǒng)復(fù)習(xí)重點(diǎn)總結(jié)文檔,是一份不錯(cuò)的參考資料,感興趣的可以下載看看,,,
    發(fā)表于 08-04 15:25 ?17次下載
    <b class='flag-5'>ARM9</b><b class='flag-5'>嵌入式</b>系統(tǒng)復(fù)習(xí)重點(diǎn)
    主站蜘蛛池模板: 日本在线网站 | tube69hdxxxx日本| 亚洲人成网站在线 | 色中色软件| 色多多在线看 | 欧美在线视 | 二级黄色大片 | 5x视频在线观看 | 欧美特黄一级视频 | 4338×亚洲全国最大色成网站 | 狠狠色噜噜狠狠狠狠888奇米 | 久久精品.com | 黄色一级大片视频 | 天天干天天草天天 | 国产精品第一页在线观看 | 一级毛片日韩 | 一本一本大道香蕉久在线精品 | 曰曰摸天天摸人人看久久久 | 狼人久草 | 男人天堂网2021 | 嫩草影院地址一地址二 | 色男人的天堂 | 欧美aaaav免费大片 | 日日干夜夜骑 | 4hu影院最新地址www | 国产图片区 | 国产精品天天看天天爽 | 92香蕉视频| 四虎影库网址 | 欧美一级片网站 | 欧美白虎逼 | 天堂网最新版中文 | 国产在线高清精品二区色五郎 | 天天碰视频 | 天天看片夜夜爽 | 成年人看的黄色 | 8050午夜一级| 成人xx视频免费观看 | 91桃色国产线观看免费 | 国产婷婷一区二区三区 | 一级美女视频 |