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

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

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

3天內不再提示

AUTOSAR中的IIC如何實現和配置

嵌入式軟件實戰派 ? 來源:嵌入式軟件實戰派 ? 作者:嵌入式軟件實戰派 ? 2022-12-12 09:25 ? 次閱讀

IIC不是AUTOSAR MCAL的標準模塊,本文探討IIC的MCAL實現方式,以及Vector AUTOSAR IIC的配置方法和步驟。

文末提供限時PDF版分享,敬請關注。

1. IIC在AUTOSAR中的“地位” 首先,我們看看AUTOSAR層次結構,綠色部分是MCAL。

f734d73a-79b8-11ed-8abf-dac502259ad0.png

按理說,IIC屬于MCU的驅動層,應該在MCAL里面,但是AUTOSAR的標準模塊里面并沒有包含這個IIC。

f76be1c6-79b8-11ed-8abf-dac502259ad0.png

f7aaad0c-79b8-11ed-8abf-dac502259ad0.png

如果非要按層次分,IIC只能安放在Complex Driver

f7c4b2ba-79b8-11ed-8abf-dac502259ad0.png

也許你會很好奇,為啥?MCAL和CDD有啥不一樣?如果你是初學者,建議你先把這問題放一放,看我下面的講解。

2. IIC的MCAL實現方式

實際上IIC也可以按照MCAL的方式來實現,Vector就給出了直接的解決方案,就把IIC當MCAL來實現了。 下文,只針對AUTOSAR如何使用和配置IIC做講解,不詳細講解IIC的底層通信原理,但可能會提到一些概念,如果對IIC的通信原理感興趣,請在網上搜索學習。 AUTOSAR標準里面有很多MCAL的實現規范,其實IIC也可以參考其方式來實現,例如SPI。 傳送門:點擊鏈接查看《MCAL SPI Module原理和配置詳解》 AUTOSAR的SPI規范中提出了Channel和Sequence的概念。

f7d564de-79b8-11ed-8abf-dac502259ad0.png

同時在傳輸數據用的接口是這幾個:Spi_SetupEB,然后Spi_AsyncTransmit 那么IIC也可以做這樣的Channel和Sequence,也可以按照SPI的方法做I2c_SetupEB和I2c_AsyncTransmit這樣的接口。

I2c_SetupEB

I2c_SetupEBDynamic

I2c_Asynctransmit

I2c_GetResult

I2c_GetStatus

I2c_Cancel

I2c_SequenceEndNotification

如果你沒詳細研究過這些概念或者接口,你肯定是一頭霧水。

接下來簡單講解下。 Channel是IIC總線上的最小數據單位,這些創建好的Channels是用于各種用途的。 我們做IIC應用軟件時,通常會用一個buffer存儲數據然后發給IIC設備,而大部分IIC設備一般需要在傳輸data前,需要傳輸register或者address這樣的內容,那么像這樣的address和data就可以做成兩個不同的channel。 理解channel的概念后,這樣還可以拓展下另一個概念Channel lists,channel list是多個channel的組合,例如往IIC設備寫數據,得先發address然后跟著數據,這是有順序的一系列傳輸,即可以把這address和data兩個channel組合起來成為一個Channel list。 怎么發送這個Channel lists呢,這就需要一個叫Sequence的東西了。 Sequence是IIC總線上傳輸的最小原子單位,即sequence里面包含的channel list內容是不希望被打斷的。 能理解嗎?有點繞?以IIC設備EEPROM講解下可能更容易理解點。

Eep_WriteSequence

I2cChannelWriteCmd

I2cChannelWriteData (chained)

Eep_ReadSequence

I2cChannelReadCmd

I2cChannelReadData

Eep_AckSequence

I2cChannelAck

上面,怎么給EEPROM寫數據呢?I2cChannelWriteCmd首先將EEPROM的address發過去,這個地址就是你想寫數據的地址哈,接著再通過I2cChannelWriteData發想寫入的data。(咦?上面的chained是啥玩意?等等別急。) 有那么一點點概念了吧。 接著,你又會問I2c_SetupEB和I2c_AsyncTransmit怎么跟這些Channel和Sequence扯上關系呢? 那就再拿出幾個栗子來看看吧,手把手教到你懂。 以下按7-bit地址講解。

例子1:給0x20地址設備發送10個字節的數據。

I2c_SetupEB(Channel,Buffer,NULL_PTR,10)
I2c_AsyncTransmit(Sequence)

這個很簡單,就是直接理解為IIC直接將address和data一起發出去。

f7f6b6c0-79b8-11ed-8abf-dac502259ad0.png

*注:途中的S表示IIC的Start,RS表示ReStart,P表示Stop,下同

例子2:由兩個不同Channel組成的Sequence,給0x20地址設備發送2和8個字節的數據。

I2c_SetupEB(CH01,Buffer0,NULL_PTR,2)
I2c_SetupEB(CH02, Buffer1, NULL_PTR, 8)
I2c_AsyncTransmit(Sequence)

這個也很簡單,不帶Chain特性的,IIC會重新發起Start,即restart。

f8222652-79b8-11ed-8abf-dac502259ad0.png

例子3:由三個不同Channel組成的Sequence,給0x20地址設備發送2、8和4個字節的數據。其中CH03這個Channel是帶Chain的。

I2c_SetupEB(CH01, Buffer0, NULL_PTR, 2)
I2c_SetupEB(CH02, Buffer1, NULL_PTR, 8)
I2c_SetupEB(CH03,Buffer2,NULL_PTR,4)
I2c_AsyncTransmit(Sequence)

因為CH03帶Chain,所以是接著CH02發的,沒有restart。

f83815de-79b8-11ed-8abf-dac502259ad0.png

Chain的特性就可以簡單理解為,是跟上一個Channel鏈起來的,所以Chain是不可以在第一個Channel的。這個要注意。

上面講的都是基于7-bit地址的,似乎都上send或者write數據的情況。 下面講解8-bit地址,讀數據回來的情景。 其實7-bit地址和8-bit地址沒多大差別,看數值好像就是移了一位而已。

例子4:同樣給0x20地址設備發送2、8個字節的數據。其中CH02這個Channel的方向發生了變化。

I2c_SetupEB(CH01,Buffer0,NULL_PTR,2)(mastertransmitter)
I2c_SetupEB(CH02,NULL_PTR,Buffer1,8)(masterreceiver)
I2c_AsyncTransmit(Sequence)

注意上面代碼的buffer參數位置變了,即通信方向變了,下面的那個Channel CH02方向發生了改變,即IIC會重新發起start,即restart。

f84df12e-79b8-11ed-8abf-dac502259ad0.png

以上的例子應該很清晰了,我想你也應該理解了吧。 可以粗略總結下:

如果沒有Chain的話,這個Channel在發送時,IIC會Restart;

如果幾個不同Channel發送時,Channel的方向發生了變化,IIC也會Restart;

如果Channel帶Chain,那么這個IIC是不會Restart的。

這里有個問題,如果兩個Channel對應兩個不同地址,后面的Channel帶Chain,會發生什么情況呢?

例子5:Channel CH01地址是0x20,CH02地址是0x22,同時CH02是Chain的。

I2c_SetupEB(CH01, Buffer0, NULL_PTR, 2) (master transmitter)
I2c_SetupEB(CH02,Buffer1,NULL_PTR,8)(mastertransmitter)
I2c_AsyncTransmit(Sequence)

從上面的推論,CH01到CH02切換時,方向沒改變,而且是Chain的,所以波形是這樣的。

f86b1574-79b8-11ed-8abf-dac502259ad0.png

這里的CH02的地址被忽略了!可以跟上面的案例一起對比理解下。

3. IIC的AUTOSAR配置

講了這么多原理特點,那么這玩意在AUTOSAR是怎么配置使用的呢?總不能光說不練嘛!

審核編輯 :李倩

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

    關注

    7

    文章

    2731

    瀏覽量

    47662
  • IIC
    IIC
    +關注

    關注

    11

    文章

    302

    瀏覽量

    38441
  • AUTOSAR
    +關注

    關注

    10

    文章

    363

    瀏覽量

    21731

原文標題:AUTOSAR中的IIC如何實現和配置

文章出處:【微信號:embedded_sw,微信公眾號:嵌入式軟件實戰派】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AUTOSAR通信對自動駕駛的影響 AUTOSAR通信與嵌入式系統設計

    AUTOSAR通信與嵌入式系統設計緊密相連,共同推動著自動駕駛技術的發展。 AUTOSAR通信對自動駕駛的影響 提高通信效率和可靠性 AUTOSAR通信協議棧通過標準化的接口和協議,實現
    的頭像 發表于 12-17 15:09 ?349次閱讀

    AUTOSAR通信與網絡安全 AUTOSAR通信在車輛的應用

    隨著汽車行業的發展,車輛的電子化和智能化水平不斷提高,這使得車輛的通信系統變得日益復雜。AUTOSAR(AUTomotive Open System ARchitecture)是一個全球性的汽車軟件
    的頭像 發表于 12-17 15:06 ?361次閱讀

    AUTOSAR通信實現的常見問題

    AUTOSAR(Automotive Open System Architecture)汽車開放系統架構旨在實現汽車電子的軟硬件分離,降低ECU軟件開發的復雜度,提高軟件可重用性。 一、通信協議棧
    的頭像 發表于 12-17 15:03 ?464次閱讀

    AUTOSAR通信堆棧的配置 AUTOSAR通信模塊測試方法

    )的開發和生產。通信堆棧是AUTOSAR架構的關鍵組成部分,負責處理ECU之間的通信。 AUTOSAR通信堆棧的配置 通信模型 :
    的頭像 發表于 12-17 15:01 ?346次閱讀

    AUTOSAR通信框架的優勢 AUTOSAR通信實例與應用場景

    AUTOSAR通信框架的優勢 AUTOSAR(AUTomotive Open System ARchitecture)是一個全球性的汽車軟件架構合作伙伴計劃,旨在創建并建立一個開放的標準化軟件架構
    的頭像 發表于 12-17 14:58 ?402次閱讀

    AUTOSAR通信與CAN協議的關系

    AUTOSAR通信模型: AUTOSAR定義了一個分層的軟件架構,其中包括應用層、基礎軟件層和微控制器抽象層。在這些層,通信模型是實現ECU之間通信的關鍵部分。
    的頭像 發表于 12-17 14:57 ?339次閱讀

    AUTOSAR通信組件介紹 AUTOSAR通信層功能分析

    實現汽車電子控制單元(ECU)的軟件設計和開發。這個架構包括多個層,其中通信層是AUTOSAR架構的關鍵組成部分之一。 1. 通信組件概述 AUTOSAR通信組件主要負責ECU之間的
    的頭像 發表于 12-17 14:55 ?486次閱讀

    AUTOSAR通信協議解析 如何實現AUTOSAR通信

    AUTOSAR(Automotive Open System Architecture)即汽車開放系統架構,該架構支持汽車電子控制單元(ECU)之間的通信,實現了高度模塊化和可重用性。AUTOSAR
    的頭像 發表于 12-17 14:54 ?943次閱讀

    極海正式推出自研AUTOSAR MCAL軟件包和配置工具,加速汽車創新應用量產落地

    針對G32A14XX系列汽車通用MCU,極海正式推出具備獨立知識產權、完全自主開發的 AUTOSAR MCAL軟件包和配置工具,這標志著極海已具備完善的、高水準的、獨立自主的AUTOSAR軟件開發
    發表于 11-20 13:45 ?172次閱讀
    極海正式推出自研<b class='flag-5'>AUTOSAR</b> MCAL軟件包和<b class='flag-5'>配置</b>工具,加速汽車創新應用量產落地

    極海半導體推出AUTOSAR MCAL軟件包和配置工具

    針對G32A14XX系列汽車通用MCU,極海正式推出具備獨立知識產權、完全自主開發的?AUTOSAR MCAL軟件包和配置工具,這標志著極海已具備完善的、高水準的、獨立自主的AUTOSAR軟件開發
    的頭像 發表于 11-17 16:42 ?523次閱讀
    極海半導體推出<b class='flag-5'>AUTOSAR</b> MCAL軟件包和<b class='flag-5'>配置</b>工具

    AUTOSAR解決方案 — INTEWORK-EAS-AP

    經緯恒潤自主研發的Adaptive AUTOSAR平臺產品, 遵循AUTOSAR Adaptive R19-11和R22-11規范, 使用C++11、C++17語言開發。可通過極易上手的自研工具配置
    的頭像 發表于 11-06 16:11 ?749次閱讀
    <b class='flag-5'>AUTOSAR</b>解決方案 — INTEWORK-EAS-AP

    Vector AUTOSAR的TISCI服務器集成

    電子發燒友網站提供《Vector AUTOSAR的TISCI服務器集成.pdf》資料免費下載
    發表于 08-30 11:16 ?0次下載
    Vector <b class='flag-5'>AUTOSAR</b><b class='flag-5'>中</b>的TISCI服務器集成

    AUTOSAR MCAL驅動程序與演示程序的Libraries的驅動程序有什么不同之處?

    1.關于 AUTOSAR MCAL 驅動程序 與演示程序的 Libraries 的驅動程序 有什么不同之處? 2.AUTOSAR MCAL 驅動程序
    發表于 05-17 06:55

    TC387配置Autosar OS后主核跑飛了怎么解決?

    使用TC387芯片配置Autosar OS發現主核跑飛了,其他核正常運行OS任務切換,PC指針指向_IF_CONST區域,D[4]寄存器為1,D[15]寄存器為4,根據這兩個寄存器用計算規則計算出的TCN和TIN好像有問題,在Trap
    發表于 03-06 08:24

    FPGA實現IIC協議的設計

    今天給大家帶來的是IIC通信,IIC協議應用非常廣泛,例如與MPU6050進行通信,配置OV5640攝像頭、驅動OLED屏幕等等,都需要使用到IIC協議,所以掌握它是非常必要的,廢話不
    的頭像 發表于 03-04 10:49 ?1326次閱讀
    FPGA<b class='flag-5'>實現</b><b class='flag-5'>IIC</b>協議的設計
    主站蜘蛛池模板: 秋霞成人午夜鲁丝一区二区三区 | 啊灬啊灬啊灬快高潮视频 | 天天操天天干天天爽 | 高清一区二区亚洲欧美日韩 | 美女屁股软件 | 菠萝菠萝蜜免费播放高清 | 日日夜夜影院在线播放 | 99热热在线精品久久 | 幼儿交1300部一区二区 | 亚洲宅男天堂a在线 | 又亲又揉摸下面视频免费看 | 广东95后小情侣酒店自拍流出 | 免费乱理伦片在线观看夜 | 99re5久久热在线 | 国产成人精品电影 | 九九九精品国产在线 | 92午夜免费福利757 | blacked黑人战小美女 | 免费黄色网址在线观看 | 美女与男人对肌免费网站 | 秋霞电影网午夜一级鲁丝片 | 国产亚洲精品精品精品 | 超清无码波多野吉衣与黑人 | 日韩精品AV一区二区三区 | 金发欧美一区在线观看 | 日韩特黄特色大片免费视频 | 亚洲高清无在码在线电影 | 永久adc视频年龄确认 | 亚洲国产AV一区二区三区四区 | 啪啪激情婷婷久久婷婷色五月 | 午夜理伦片免费 | 最近中文字幕2019免费版日本 | 男女肉大捧进出全过程免费 | 亚洲精品美女久久777777 | 精品午夜中文字幕熟女人妻在线 | 97公开超碰在线视频 | 无码成人AAAAA毛片含羞草 | 无码射肉在线播放视频 | 人妻无码AV中文系列 | 国产精品 中文字幕 亚洲 欧美 | 国产亚洲精品久久久久久国 |