日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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)信息技術(shù)EM9170嵌入式主板CAN通訊接口使用說明

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-15 11:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

英創(chuàng)公司推出的基于WinCE 6.0操作系統(tǒng)嵌入式工控板卡EM9170,板上帶有2路獨(dú)立的CAN總線接口,均為FlexCAN模塊。FlexCAN完全支持CAN 2.0B協(xié)議,支持對(duì)于標(biāo)準(zhǔn)幀和擴(kuò)展幀的收發(fā),同時(shí)FlexCAN還支持高優(yōu)先級(jí)的報(bào)文優(yōu)先發(fā)送的機(jī)制,可有效改善實(shí)時(shí)控制的相應(yīng)時(shí)間。EM9170板上輸出的兩路CAN收發(fā)信號(hào)均為TTL電平,在實(shí)際使用時(shí)需要在外圍電路中加上CAN驅(qū)動(dòng)芯片,具體可以參考英創(chuàng)公司提供的“EM9170開發(fā)底板評(píng)估手冊(cè)”。EM9170內(nèi)核操作系統(tǒng)中已經(jīng)實(shí)現(xiàn)FlexCAN底層驅(qū)動(dòng),系統(tǒng)一旦上電系統(tǒng),將自動(dòng)加載兩路FlexCAN的驅(qū)動(dòng)程序,客戶在基于EM9170上編寫CAN應(yīng)用程序時(shí),均可按照WinCE流式設(shè)備,打開關(guān)閉文件的方式對(duì)CAN接口進(jìn)行操作,本文將著重介紹基于EM9170上FlexCAN的使用方法。

數(shù)據(jù)結(jié)構(gòu)

EM9170的CAN通訊提供了兩種數(shù)據(jù)結(jié)構(gòu),定義在flex_can.h文件中。一個(gè)是CAN通訊數(shù)據(jù)包的結(jié)構(gòu),一個(gè)是CAN通訊中對(duì)于濾波器的設(shè)置結(jié)構(gòu)。

CAN數(shù)據(jù)包結(jié)構(gòu)的定義如下:

typedef struct
{
// 定義數(shù)據(jù)幀的類型:0 - 標(biāo)準(zhǔn)幀;1 - 擴(kuò)展幀
DWORD dwType;
// 標(biāo)準(zhǔn)幀或擴(kuò)展幀的CAN ID。
// bit 0-28: CAN identifier (11/29 bit),其中標(biāo)準(zhǔn)幀11bit,擴(kuò)展幀29bit
DWORD dwID;
// = 0:數(shù)據(jù)幀;= 1:遠(yuǎn)程幀
DWORD dwRTR;
// 發(fā)送優(yōu)先級(jí)= 0 - 7,為最高優(yōu)先級(jí),對(duì)接收數(shù)據(jù)包無意義
DWORD dwPrio;
// 數(shù)據(jù)長度= 0 - 8
DWORD dwDatLen;
// 數(shù)據(jù)字節(jié)
UCHAR ucDat[8];
}CAN_PACKET, *PCAN_PACKET;

CAN濾波器數(shù)據(jù)結(jié)構(gòu)的定義如下:

typedef struct
{
// 組號(hào),恒為0
DWORD dwGroup;
// 定義數(shù)據(jù)幀的類型:0 - 標(biāo)準(zhǔn)幀;1 - 擴(kuò)展幀
DWORD dwType;
// 定義標(biāo)準(zhǔn)幀或擴(kuò)展幀需要比較過濾的CAN ID。
// bit 0-28: CAN identifier (11/29 bit),其中標(biāo)準(zhǔn)幀11bit,擴(kuò)展幀29bit
DWORD dwID;
// = 0:數(shù)據(jù)幀;= 1:遠(yuǎn)程幀
DWORD dwRTR;
// 定義和dwID對(duì)應(yīng)的需要檢查或不檢查的Mask位
// bit 0-28: (11/29 bit),其中標(biāo)準(zhǔn)幀11bit,擴(kuò)展幀29bit
// = 0:該位不檢查;= 1:該位須檢查
DWORD dwMask;
}CAN_FILTER, *PCAN_FILTER;

濾波器數(shù)據(jù)結(jié)構(gòu)設(shè)置距離如下:

CAN_FILTER Filter;
Filter.dwGroup = 0; // 保留,恒為0
Filter.dwType = CAN_PACKET_TYPE_STANDARD; // 標(biāo)準(zhǔn)幀
Filter.dwID = 0x00000002; // 設(shè)定的接收ID
Filter.dwMask = 0x00000003; // 檢查接收?qǐng)?bào)文ID的低2位
Filter.dwRTR = 0; // 數(shù)據(jù)幀

設(shè)置的Filter結(jié)構(gòu),表明對(duì)于接收到的CAN標(biāo)準(zhǔn)幀報(bào)文只檢查報(bào)文CAN ID的低兩位的值,這兩位的值應(yīng)該和Filter.dwID所設(shè)定的值相符合,即:

CAN_ID & Filter.dwMask = Filter.dwID

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

CAN_API函數(shù)

英創(chuàng)公司提供的CAN通訊接口的驅(qū)動(dòng)程序采用標(biāo)準(zhǔn)的驅(qū)動(dòng)程序,和串口操作類似用戶可以用標(biāo)準(zhǔn)的打開文件CreateFile( )、關(guān)閉文件CloseHandle( )的方式,來打開該CAN設(shè)備,數(shù)據(jù)的收發(fā)可調(diào)用ReadFile() WrtieFile( ),另外的一些對(duì)CAN操作通訊相關(guān)參數(shù)的設(shè)置可以通過調(diào)用DeviceIOCTL( )來實(shí)現(xiàn)。為了方便客戶的使用,在CAN驅(qū)動(dòng)程序的基礎(chǔ)上,以源碼的形式為客戶封裝了一套簡(jiǎn)單實(shí)用的API函數(shù)。各個(gè)函數(shù)的定義在can_api.h文件下,在該頭文件中對(duì)于各個(gè)API函數(shù)均有相應(yīng)的中文說明。

// 功能描述:啟動(dòng)CAN設(shè)備端口
// 輸入?yún)?shù)hDevice: 已創(chuàng)建CAN流式設(shè)備的句柄。
// 返回值= TRUE: 啟動(dòng)CAN設(shè)備端口成功。
// = FALSE: 啟動(dòng)CAN設(shè)備端口失敗。
BOOL CAN_StartChip(HANDLE hDevice);

// 功能描述:停止CAN設(shè)備端口。
// 輸入?yún)?shù)hDevice: 已創(chuàng)建CAN流式設(shè)備的句柄。
// 返回值= TRUE: 停止CAN設(shè)備端口成功。
// = FALSE: 停止CAN設(shè)備端口失敗。
BOOL CAN_StopChip(HANDLE hDevice);

// 功能描述: 軟件復(fù)位CAN設(shè)備端口。
// 輸入?yún)?shù)hDevice: 已創(chuàng)建CAN流式設(shè)備的句柄。
// 返回值 = TRUE: 復(fù)位CAN設(shè)備端口成功。
// = FALSE: 復(fù)位CAN設(shè)備端口失敗。
BOOL CAN_SoftReset(HANDLE hDevice);

// 功能描述:設(shè)置CAN設(shè)備通訊的波特率。
// 輸入?yún)?shù)hDevice: 已創(chuàng)建CAN流式設(shè)備的句柄。
// 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: 波特率設(shè)置成功。
// = FALSE: 波特率設(shè)置失敗。
BOOL CAN_SetBaudRate(HANDLE hDevice, DWORD dwBaudRate );

// 功能描述: 設(shè)置CAN設(shè)備通訊接收過濾器配置。
// 輸入?yún)?shù)hDevice: 已創(chuàng)建CAN流式設(shè)備的句柄。
// pFilter: 根據(jù)通訊報(bào)文格式定義過濾器的配置。
// 返回值= TRUE: 配置設(shè)置成功。
// = FALSE: 配置設(shè)置失敗。
BOOL CAN_SetFilter( HANDLE hDevice, PCAN_FILTER pFilter );

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

// 功能描述: 清空CAN設(shè)備通訊接收、發(fā)送BUFFER。
// 輸入?yún)?shù)hDevice: 已創(chuàng)建CAN流式設(shè)備的句柄。
// 返回值= TRUE: 設(shè)置成功。
BOOL CAN_Purge( HANDLE hDevice );

CAN出錯(cuò)處理

在CAN實(shí)際應(yīng)用數(shù)據(jù)通訊過程中,可能會(huì)遇到CAN通訊出錯(cuò)的情況,調(diào)用API函數(shù)WaitCANEvent( HANDLE hDevice, LPDWORD lpEvtMask, DWORD dwTimeout )可以獲取到CAN通訊出錯(cuò)的事件,對(duì)CAN的錯(cuò)誤事件的處理可采用重啟CAN設(shè)備的操作。

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

在英創(chuàng)公司提供的應(yīng)用光盤中有具體CAN接口的測(cè)試代碼,可供客戶參考測(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)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6107

    瀏覽量

    37174
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    arm嵌入式主板優(yōu)缺點(diǎn)

    嵌入式主板嵌入在設(shè)備里面做控制、數(shù)據(jù)處理使用的CPU板 ,常見的有兩類,即基于X86的嵌入式主板和基于RISC的ARM
    發(fā)表于 01-08 07:08

    系統(tǒng)嵌入式的學(xué)習(xí)路線

    嵌入式技術(shù)是各種電子產(chǎn)品的核心技術(shù),也是工業(yè)4.0、遠(yuǎn)程醫(yī)療、3D打印等新興產(chǎn)業(yè)的核心技術(shù),具有廣闊的發(fā)展前景。很多計(jì)算機(jī)、電子信息類專業(yè)的
    發(fā)表于 12-16 07:49

    ARM嵌入式這樣學(xué)

    工程師的的終點(diǎn)只有一個(gè),就是真正的技術(shù)專家。 嵌入式技術(shù)大體上可分為編程語言,內(nèi)核技術(shù),操作系統(tǒng),總線接口,系統(tǒng)集成。其實(shí)細(xì)心的可以發(fā)現(xiàn),
    發(fā)表于 12-04 07:48

    串行接口MRAM存儲(chǔ)芯片面向工業(yè)物聯(lián)網(wǎng)和嵌入式系統(tǒng)的應(yīng)用

    尚微電子所代理的Everspin xSPI串行接口MRAM存儲(chǔ)芯片,基于最新的JEDEC xSPI標(biāo)準(zhǔn)與獨(dú)有的STT-MRAM技術(shù)構(gòu)建,這款串行接口MRAM存儲(chǔ)芯片可全面替代傳統(tǒng)SR
    的頭像 發(fā)表于 11-05 15:31 ?553次閱讀

    嵌入式主板的選型與應(yīng)用

    一、嵌入式主板核心元器件選型的關(guān)鍵考量在嵌入式主板設(shè)計(jì)中,核心元器件的選型直接決定產(chǎn)品性能與可靠性,需結(jié)合場(chǎng)景需求精準(zhǔn)匹配。以處理器為例,除算力與功耗外,還需關(guān)注工業(yè)級(jí)溫度范圍——如
    的頭像 發(fā)表于 11-03 17:20 ?890次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>的選型與應(yīng)用

    嵌入式需要掌握哪些核心技能?

    /網(wǎng)絡(luò)設(shè)備)、中斷底半部處理,適用于高端嵌入式設(shè)備。 企業(yè)需求:RTOS是60%崗位的核心要求,Linux開發(fā)需求隨項(xiàng)目復(fù)雜度增長。 4)通信協(xié)議與接口 基礎(chǔ)協(xié)議:UART、SPI、I2C、CAN總線
    發(fā)表于 10-21 16:25

    嵌入式接口通識(shí)知識(shí)之CAN接口

    1.1 基礎(chǔ)概念CAN的全稱是Controller Area Network,譯為控制器區(qū)域網(wǎng)絡(luò),是一種用于車輛、電力系統(tǒng)、工業(yè)設(shè)備等嵌入式系統(tǒng)的半雙工異步串行通信協(xié)議和物理接口CAN
    發(fā)表于 08-21 16:49

    入行嵌入式應(yīng)該怎么準(zhǔn)備?

    想入行嵌入式該怎么準(zhǔn)備。很能理解大家對(duì)于嵌入式的關(guān)注,嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域中的重要組成部分,它存在于我們生活的方方面面,各行各業(yè)。智能化時(shí)代的到來也讓嵌入式
    發(fā)表于 08-06 10:34

    一文帶你了解嵌入式主板

    嵌入式主板是專為嵌入式系統(tǒng)設(shè)計(jì)的計(jì)算機(jī)主板。它與我們常見的臺(tái)式機(jī)或筆記本電腦主板有著顯著的區(qū)別,核心在于它不是為了通用計(jì)算,而是為了執(zhí)行特定
    的頭像 發(fā)表于 06-30 16:12 ?919次閱讀
    一文帶你了解<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>

    嵌入式主板詳解與選購指南

    什么是嵌入式主板?嵌入式主板是專為嵌入式系統(tǒng)設(shè)計(jì)的核心計(jì)算平臺(tái)。它與我們?nèi)粘J褂玫呐_(tái)式機(jī)或筆記本電腦主板
    的頭像 發(fā)表于 06-06 13:23 ?987次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>詳解與選購指南

    PROFINET接口嵌入式解決方案

    嵌入式PROFINET RT IRT MRP接口模塊PNS-424為需要PROFINET通信功能的用戶,提供PROFINET從站接口。 用戶可通過串行接口,實(shí)現(xiàn)高速度,低延時(shí)過程數(shù)據(jù)傳
    的頭像 發(fā)表于 06-04 15:26 ?815次閱讀
    PROFINET<b class='flag-5'>接口</b><b class='flag-5'>嵌入式</b>解決方案

    ElfBoard嵌入式教育科普|CAN接口全面解析

    CAN的全稱是Controller Area Network,譯為控制器區(qū)域網(wǎng)絡(luò),是一種用于車輛、電力系統(tǒng)、工業(yè)設(shè)備等嵌入式系統(tǒng)的半雙工異步串行通信協(xié)議和物理接口。
    的頭像 發(fā)表于 05-28 16:30 ?2824次閱讀
    ElfBoard<b class='flag-5'>嵌入式</b>教育科普|<b class='flag-5'>CAN</b><b class='flag-5'>接口</b>全面解析

    嵌入式主板特點(diǎn)與應(yīng)用場(chǎng)景解析

    嵌入式主板(EmbeddedMotherboard)是專為嵌入式系統(tǒng)設(shè)計(jì)的重要硬件平臺(tái),通常集成處理器、內(nèi)存、存儲(chǔ)、接口等關(guān)鍵組件,用于控制和管理特定設(shè)備或應(yīng)用。與通用計(jì)算機(jī)
    的頭像 發(fā)表于 05-26 15:12 ?1014次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>特點(diǎn)與應(yīng)用場(chǎng)景解析

    在金融發(fā)展領(lǐng)域,嵌入式主板有什么優(yōu)點(diǎn)?

    在金融發(fā)展領(lǐng)域,嵌入式主板能夠有力推動(dòng)金融行業(yè)的智能化與高效化進(jìn)程。主板的強(qiáng)大計(jì)算能力可以保障業(yè)務(wù)高效運(yùn)行。
    的頭像 發(fā)表于 05-19 09:22 ?834次閱讀

    創(chuàng)浪潮下,國產(chǎn)主板有什么新的發(fā)展機(jī)遇?

    信息技術(shù)應(yīng)用創(chuàng)新浪潮的推動(dòng)下,國產(chǎn)主板迎來了諸多新的發(fā)展機(jī)遇。信創(chuàng)產(chǎn)業(yè)旨在實(shí)現(xiàn)信息技術(shù)領(lǐng)域的自主可控,這一戰(zhàn)略目標(biāo)為國產(chǎn)主板的發(fā)展提供了廣
    的頭像 發(fā)表于 05-09 09:24 ?888次閱讀
    信<b class='flag-5'>創(chuàng)</b>浪潮下,國產(chǎn)<b class='flag-5'>主板</b>有什么新的發(fā)展機(jī)遇?
    个旧市| 民勤县| 宁德市| 龙海市| 贵定县| 阳城县| 大同市| 杨浦区| 旺苍县| 铁岭市| 资讯 | 定兴县| 汪清县| 中江县| 崇信县| 延川县| 柏乡县| 台州市| 沅江市| 澄迈县| 宜君县| 怀来县| 阿城市| 柳林县| 磴口县| 万全县| 隆林| 宾川县| 彝良县| 龙门县| 会东县| 确山县| 盱眙县| 阳曲县| 大姚县| 南汇区| 安西县| 白山市| 宁国市| 苍梧县| 麦盖提县|