色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

英創信息技術EM9170嵌入式主板CAN通訊接口使用說明

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2020-01-15 11:43 ? 次閱讀

英創公司推出的基于WinCE 6.0操作系統嵌入式工控板卡EM9170,板上帶有2路獨立的CAN總線接口,均為FlexCAN模塊。FlexCAN完全支持CAN 2.0B協議,支持對于標準幀和擴展幀的收發,同時FlexCAN還支持高優先級的報文優先發送的機制,可有效改善實時控制的相應時間。EM9170板上輸出的兩路CAN收發信號均為TTL電平,在實際使用時需要在外圍電路中加上CAN驅動芯片,具體可以參考英創公司提供的“EM9170開發底板評估手冊”。EM9170內核操作系統中已經實現FlexCAN底層驅動,系統一旦上電系統,將自動加載兩路FlexCAN的驅動程序,客戶在基于EM9170上編寫CAN應用程序時,均可按照WinCE流式設備,打開關閉文件的方式對CAN接口進行操作,本文將著重介紹基于EM9170上FlexCAN的使用方法。

數據結構

EM9170的CAN通訊提供了兩種數據結構,定義在flex_can.h文件中。一個是CAN通訊數據包的結構,一個是CAN通訊中對于濾波器的設置結構。

CAN數據包結構的定義如下:

typedef struct
{
// 定義數據幀的類型:0 - 標準幀;1 - 擴展幀
DWORD dwType;
// 標準幀或擴展幀的CAN ID。
// bit 0-28: CAN identifier (11/29 bit),其中標準幀11bit,擴展幀29bit
DWORD dwID;
// = 0:數據幀;= 1:遠程幀
DWORD dwRTR;
// 發送優先級= 0 - 7,為最高優先級,對接收數據包無意義
DWORD dwPrio;
// 數據長度= 0 - 8
DWORD dwDatLen;
// 數據字節
UCHAR ucDat[8];
}CAN_PACKET, *PCAN_PACKET;

CAN濾波器數據結構的定義如下:

typedef struct
{
// 組號,恒為0
DWORD dwGroup;
// 定義數據幀的類型:0 - 標準幀;1 - 擴展幀
DWORD dwType;
// 定義標準幀或擴展幀需要比較過濾的CAN ID。
// bit 0-28: CAN identifier (11/29 bit),其中標準幀11bit,擴展幀29bit
DWORD dwID;
// = 0:數據幀;= 1:遠程幀
DWORD dwRTR;
// 定義和dwID對應的需要檢查或不檢查的Mask位
// bit 0-28: (11/29 bit),其中標準幀11bit,擴展幀29bit
// = 0:該位不檢查;= 1:該位須檢查
DWORD dwMask;
}CAN_FILTER, *PCAN_FILTER;

濾波器數據結構設置距離如下:

CAN_FILTER Filter;
Filter.dwGroup = 0; // 保留,恒為0
Filter.dwType = CAN_PACKET_TYPE_STANDARD; // 標準幀
Filter.dwID = 0x00000002; // 設定的接收ID
Filter.dwMask = 0x00000003; // 檢查接收報文ID的低2位
Filter.dwRTR = 0; // 數據幀

設置的Filter結構,表明對于接收到的CAN標準幀報文只檢查報文CAN ID的低兩位的值,這兩位的值應該和Filter.dwID所設定的值相符合,即:

CAN_ID & Filter.dwMask = Filter.dwID

因此在上例中,所接收的CAN報文的ID的低兩位必須為0x02。

CAN_API函數

英創公司提供的CAN通訊接口的驅動程序采用標準的驅動程序,和串口操作類似用戶可以用標準的打開文件CreateFile( )、關閉文件CloseHandle( )的方式,來打開該CAN設備,數據的收發可調用ReadFile() WrtieFile( ),另外的一些對CAN操作通訊相關參數的設置可以通過調用DeviceIOCTL( )來實現。為了方便客戶的使用,在CAN驅動程序的基礎上,以源碼的形式為客戶封裝了一套簡單實用的API函數。各個函數的定義在can_api.h文件下,在該頭文件中對于各個API函數均有相應的中文說明。

// 功能描述:啟動CAN設備端口
// 輸入參數hDevice: 已創建CAN流式設備的句柄。
// 返回值= TRUE: 啟動CAN設備端口成功。
// = FALSE: 啟動CAN設備端口失敗。
BOOL CAN_StartChip(HANDLE hDevice);

// 功能描述:停止CAN設備端口。
// 輸入參數hDevice: 已創建CAN流式設備的句柄。
// 返回值= TRUE: 停止CAN設備端口成功。
// = FALSE: 停止CAN設備端口失敗。
BOOL CAN_StopChip(HANDLE hDevice);

// 功能描述: 軟件復位CAN設備端口。
// 輸入參數hDevice: 已創建CAN流式設備的句柄。
// 返回值 = TRUE: 復位CAN設備端口成功。
// = FALSE: 復位CAN設備端口失敗。
BOOL CAN_SoftReset(HANDLE hDevice);

// 功能描述:設置CAN設備通訊的波特率。
// 輸入參數hDevice: 已創建CAN流式設備的句柄。
// CAN_TIMING_10K : 10Kbps
// CAN_TIMING_20K : 20Kbps
// CAN_TIMING_50K : 50bps
// CAN_TIMING_60K : 60bps
// CAN_TIMING_100K : 100bps
// CAN_TIMING_125K : 125Kbps
// CAN_TIMING_250K : 250Kbps
// CAN_TIMING_500K : 500bps
// CAN_TIMING_1000K: 1Mbps
// 返回值= TRUE: 波特率設置成功。
// = FALSE: 波特率設置失敗。
BOOL CAN_SetBaudRate(HANDLE hDevice, DWORD dwBaudRate );

// 功能描述: 設置CAN設備通訊接收過濾器配置。
// 輸入參數hDevice: 已創建CAN流式設備的句柄。
// pFilter: 根據通訊報文格式定義過濾器的配置。
// 返回值= TRUE: 配置設置成功。
// = FALSE: 配置設置失敗。
BOOL CAN_SetFilter( HANDLE hDevice, PCAN_FILTER pFilter );

// 功能描述: 獲取CAN設備通訊事件
// 輸入參數hDevice: 已創建CAN流式設備的句柄。
// dwTimeout: 超時時間,單位為ms
// 輸出參數
// lpEvtMask: 得到的CAN事件類型= 1:接收到CAN數據包
// = 2:CAN錯誤事件
// 返回值= TRUE: 調用成功。
// = FALSE: 調用失敗。
BOOL WaitCANEvent( HANDLE hDevice, LPDWORD lpEvtMask, DWORD dwTimeout );

// 功能描述: 清空CAN設備通訊接收、發送BUFFER。
// 輸入參數hDevice: 已創建CAN流式設備的句柄。
// 返回值= TRUE: 設置成功。
BOOL CAN_Purge( HANDLE hDevice );

CAN出錯處理

在CAN實際應用數據通訊過程中,可能會遇到CAN通訊出錯的情況,調用API函數WaitCANEvent( HANDLE hDevice, LPDWORD lpEvtMask, DWORD dwTimeout )可以獲取到CAN通訊出錯的事件,對CAN的錯誤事件的處理可采用重啟CAN設備的操作。

if( WaitCANEvent( pCAN->m_hCAN, &dwEvtMask, 2000 ) )
{
…..
if( dwEvtMask & 0x02 ) // 錯誤事件
{
CAN_StopChip( pCAN->m_hCAN );
CAN_StartChip( pCAN->m_hCAN );
}
}

在英創公司提供的應用光盤中有具體CAN接口的測試代碼,可供客戶參考測試。

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

    關注

    7

    文章

    6085

    瀏覽量

    35296
收藏 人收藏

    評論

    相關推薦

    什么是嵌入式?一文讀懂嵌入式主板

    在現代科技浪潮中,嵌入式技術已成為支撐各種智能設備和系統運行的核心力量。那么,究竟什么是嵌入式嵌入式系統,顧名思義,是將計算機的硬件和軟件嵌入
    的頭像 發表于 10-16 10:14 ?928次閱讀

    CAN/CANFD卡接口函數使用說明

    電子發燒友網站提供《CAN/CANFD卡接口函數使用說明.pdf》資料免費下載
    發表于 10-15 17:35 ?0次下載

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統的核心組件,是一種用于控制和數據處理的計算機硬件,其設計旨在嵌入特定設備中執行專門任務。嵌入式
    的頭像 發表于 09-30 10:05 ?451次閱讀

    飛凌嵌入式技術創新日(深圳站)圓滿落幕

    2024年8月26日下午,飛凌嵌入式技術創新日深圳站在深圳威尼斯迪格酒店盛大舉行,此次活動匯聚了近200位嵌入式技術領域的專家和企業代表,
    的頭像 發表于 08-30 15:42 ?347次閱讀
    飛凌<b class='flag-5'>嵌入式</b><b class='flag-5'>技術</b>創新日(深圳站)圓滿落幕

    飛凌嵌入式技術創新日(深圳站)精彩回顧

    2024年8月26日下午,飛凌嵌入式技術創新日深圳站在深圳威尼斯迪格酒店盛大舉行,此次活動匯聚了近200位嵌入式技術領域的專家和企業代表,
    發表于 08-28 09:06

    宇瓏RK3576核心板與嵌入式主板通用平臺介紹

    宇瓏RK3576核心板與嵌入式主板通用平臺介紹
    的頭像 發表于 08-26 17:23 ?557次閱讀
    宇瓏RK3576核心板與<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>通用平臺介紹

    RK3576核心板與嵌入式主板通用平臺介紹

    RK3576核心板與嵌入式主板通用平臺介紹
    的頭像 發表于 08-26 11:37 ?751次閱讀
    RK3576核心板與<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>通用平臺介紹

    專為商用平板設計的RK3588嵌入式主板方案,以智能購物車平板為例

    本文將帶你了解基于RK3588的嵌入式主板在商用平板中的應用優勢,幫助廠家和企業找到合適的嵌入式產品方案。
    的頭像 發表于 07-22 17:55 ?754次閱讀
    專為商用平板設計的RK3588<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>方案,以智能購物車平板為例

    嵌入式工控主板在金融智能設備行業應用

    嵌入式工控主板在金融智能設備行業的應用廣泛且深入,其重要性不言而喻。以下是從幾個關鍵方面來闡述嵌入式工控主板在金融智能設備行業的應用:
    的頭像 發表于 07-11 09:38 ?284次閱讀

    嵌入式系統怎么學?

    嵌入式系統怎么學? 隨著物聯網、智能制造等新技術的興起,嵌入式系統的應用范圍更加廣泛。包括但不限于工業控制、汽車電子、醫療設備、智能家居、智慧城市、消費電子、通信設備等。學習嵌入式
    發表于 07-02 10:10

    嵌入式工控機主板應用場景

    嵌入式工控機主板在多個領域中有著廣泛的應用,其特點包括體積小、集成度高、功耗低以及控制功能強等。以下是嵌入式工控機主板的一些主要應用領域:
    的頭像 發表于 04-25 17:06 ?1569次閱讀

    嵌入式主板,你了解多少?

    嵌入式主板,也稱為嵌入式計算機主板,是一種專門設計用于嵌入式系統的計算機主板。與臺式機和筆記本電腦中使用的常規
    的頭像 發表于 04-17 15:11 ?1444次閱讀

    嵌入式fpga是什么意思

    嵌入式FPGA是指將FPGA技術集成到嵌入式系統中的一種解決方案。嵌入式系統是一種為特定應用而設計的計算機系統,它通常包括處理器、內存、外設接口
    的頭像 發表于 03-15 14:29 ?1245次閱讀

    定制嵌入式主板,需要考慮的功能有哪些?

    隨著科技的不斷發展和進步,嵌入式系統在各行各業中得到了廣泛的應用。嵌入式主板作為嵌入式系統的核心組件,起著至關重要的作用。在定制嵌入式
    的頭像 發表于 02-29 17:38 ?516次閱讀
    定制<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>,需要考慮的功能有哪些?

    高端嵌入式實驗平臺

    一、整體概述 該嵌入式平臺具有前沿性、專業性、高集成度、功能豐富等特點,平臺涵蓋嵌入式計算機技術嵌入式硬件接口嵌入式系統軟件等關鍵
    的頭像 發表于 01-29 09:55 ?514次閱讀
    高端<b class='flag-5'>嵌入式</b>實驗平臺
    主站蜘蛛池模板: 入禽太深免费高清在线观看5| 秋霞特色大片18岁入口| 男的插曲女的下面免费APP| 日本免费一区二区三区四区五六区| 亚洲AV中文字幕无码久久| 中文字幕人成乱码中国| 春水福利app导航| 久久6699精品国产人妻| 日本XXXXZZX片免费观看| 亚洲欧美在无码片一区二区| 扒开胸罩揉她的乳尖视频| 国内精品不卡一区二区三区| 欧美日韩永久久一区二区三区| 亚洲国产第一| zoovideo人与驴mp4| 久久成人无码国产免费播放| 色狼亚洲色图| 2019天天射干网站| 国产亚洲精品久久久久苍井松| 免费 高清 中文在线观看| 小莹的性荡生活40章| FREE17一18外女破| 久草在线新是免费视频| 我和黑帮老大第365天第2季在线| 5g天天影院天天看天天爽| 果冻传媒在线看免费高清| 日本亚洲欧洲免费旡码| 18 japanese宾馆直播| 国产一区二区免费在线观看| 青草伊人久久| 最新亚洲中文字幕在线观看| 国产手机在线视频| 日本少妇无码精品12P| 88蜜桃人妻无码精品系列| 黑丝美女娇喘| 无码一卡二卡三卡四卡| JEALOUSVUE成熟老师APP| 久久综合久综合久久鬼色| 亚洲国产精品久久无套麻豆| 俄罗斯老妇女BBXX| 欧美高清xxx|