女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何利用英創ARM9嵌入式主板快速構建雙CAN接口的方案

英創信息技術 ? 作者:英創信息技術 ? 2019-10-08 11:37 ? 次閱讀

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個字節為信息部分,如圖所示:

注:

1、字節1為幀信息。D7位表示幀格式,在標準幀中,FF=0;D6位表示幀的類型,RTR=0表示為數據幀,RTR=1表示為遠程幀,在一般的數據通訊中,只使用數據幀;DLC表示數據幀實際的數據長度。

2、字節2、字節3為報文識別碼,11位有效。

3、字節4~字節11為數據幀的實際數據,遠程幀時無效。

2、CAN2.0B擴展幀

CAN標準幀信息為13個字節,包括兩部分:信息和數據部分。前5個字節為信息部分,如圖所示:

注:

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下的測試界面如下圖所示:

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • arm9
    +關注

    關注

    2

    文章

    290

    瀏覽量

    55491
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6096

    瀏覽量

    36130
  • CAN接口
    +關注

    關注

    3

    文章

    79

    瀏覽量

    26248
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    嵌入式主板的無線通訊解決方案

    WiFi模塊。ETA6210模塊繼續保持了PPP撥號模式,使得無論是Linux平臺的主板還是CE平臺的主板,都能方便的使用。  下表列出了當前
    發表于 03-24 14:00

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

    ARM9嵌入式主板Watchdog的使用
    發表于 09-26 10:06

    VS2005與ARM9嵌入式模塊連接和調試步驟

    使用VS2005連接和調試ARM9嵌入式模塊
    發表于 09-27 13:05

    ARM9嵌入式技術及Linux實驗指導

    ARM9嵌入式技術及
    發表于 02-09 15:19 ?70次下載

    ARM9嵌入式USB技術開發

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

    信息技術VS2005調試ARM9核心板簡介

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

    信息技術9260系列嵌入式主板調試淺談

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

    信息技術ARM9工控主板WinCE應用程序遠程控制應用

    公司推出的ARM9嵌入式工控主板產品系列,均預裝了正版的WinCE5.0操作系統。微軟的WINCE實時多任務操作系統是
    的頭像 發表于 11-04 09:28 ?1930次閱讀

    信息技術ARM9工控主板內嵌AD概述

    公司推出的ARM9 嵌入式工控主板產品系列,均預裝了正版WinCE5.0 操作系統。
    的頭像 發表于 11-04 09:43 ?2951次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b>信息技術<b class='flag-5'>ARM9</b>工控<b class='flag-5'>主板</b>內嵌AD概述

    信息技術ARM9主板上運行案例解析

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

    信息技術CAN接口COM組件在C#語言領域應用

     ARM9工控主板的一個很大的特色就是提供了標準的CAN總線通訊接口,客戶可以方便地在工業現
    的頭像 發表于 11-12 10:34 ?2680次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b>信息技術<b class='flag-5'>CAN</b><b class='flag-5'>接口</b>COM組件在C#語言領域應用

    信息技術ARM9工控板遠程抓拍圖像應用介紹

    ARM9工控主板功能齊全、體積小巧、性能穩定、超低價格的嵌入式主板產品。
    的頭像 發表于 11-13 09:41 ?2327次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b>信息技術<b class='flag-5'>ARM9</b>工控板遠程抓拍圖像應用介紹

    信息技術ARM9主板進行連接調試的兩種方法

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

    信息技術基于主板快速構建整機應用方案簡介

    公司的嵌入式工控主板配置了豐富的接口資源,利用這些資源經過簡單的擴展就可
    的頭像 發表于 02-12 10:57 ?1555次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b>信息技術基于<b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>主板</b><b class='flag-5'>快速</b><b class='flag-5'>構建</b>整機應用<b class='flag-5'>方案</b>簡介

    ARM9嵌入式系統復習重點

    ARM9嵌入式系統復習重點(嵌入式開發主要內容)-文檔為ARM9嵌入式系統復習重點總結文檔,是一份不錯的參考資料,感興趣的可以下載看看,,,
    發表于 08-04 15:25 ?17次下載
    <b class='flag-5'>ARM9</b><b class='flag-5'>嵌入式</b>系統復習重點