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

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

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

STM32的IIC通信原理詳解

CHANBAEK ? 來源:頭條號(hào)秋天滴風(fēng) ? 作者:頭條號(hào)秋天滴風(fēng) ? 2023-04-25 09:51 ? 次閱讀

本文將介紹STM32 IIC通信原理和協(xié)議

①IIC總線簡(jiǎn)介

②IIC總線協(xié)議與讀寫操作

③STM32 IIC控制器介紹

①IIC總線簡(jiǎn)介

IIC是inter integrated circuit的簡(jiǎn)稱,IIC是由PHILIPS公司開發(fā)的兩線式串行總線;該總線具有接口線少、易于控制、通訊速率高等有點(diǎn),在微電子控制領(lǐng)域被廣泛使用。

IIC總線具備以下特征:

1、同步通信,半雙工,以字節(jié)為傳輸單位;

2、兩條線路、SDA和SCL;

3、掛載在IIC總線上的設(shè)備均可為主設(shè)備、亦可為從設(shè)備;

4、具有3種傳輸速率,最高可達(dá)3.4Mbit/s;可通過總線時(shí)鐘的頻率和總線上拉電阻來配置傳輸速率;

5、多主機(jī)功能、7位和10位地址模式、可以軟件復(fù)位、1字節(jié)緩沖帶DMA功能;

IIC總線的物理連接如下圖:

wKgaomRHMiuAJiZ1AAFCzFaaXMk575.jpg

SDA和SCL總線上會(huì)有上拉電阻,總線上可以掛在一定數(shù)量的設(shè)備通過總線進(jìn)行通訊、當(dāng)總線空閑時(shí)總線上處于高電平。

②IIC總線協(xié)議與讀寫操作

wKgZomRHMiuABQVPAAB673MwkaE255.jpg

IIC總線協(xié)議包括:起始信號(hào)、終止信號(hào)、數(shù)據(jù)、應(yīng)答部分;

起始信號(hào):當(dāng)總線處于空閑狀態(tài)時(shí)SDA SCL兩根線上是高電平,若此時(shí)SDA由高變低、則定義為起始信號(hào);

終止信號(hào):當(dāng)SCL處于高電平時(shí),若此時(shí)SDA由低變高、則定義為終止信號(hào);

起始信號(hào)、終止信號(hào)顧名思義是通信的開始和終止,這兩個(gè)信號(hào)都有主設(shè)備發(fā)起;

數(shù)據(jù):可分為地址數(shù)據(jù)、和真實(shí)意義上的地址內(nèi)存儲(chǔ)的數(shù)據(jù);

應(yīng)答:應(yīng)答可以有應(yīng)答信號(hào)和非應(yīng)答信號(hào),該信號(hào)是跟在數(shù)據(jù)后面;

若主設(shè)備向從設(shè)備寫1個(gè)數(shù)據(jù)會(huì)有以下過程:

起始信號(hào)>從機(jī)地址+寫位ACK>寫入地址ACK>寫入數(shù)據(jù)ACK>終止信號(hào)

wKgaomRHMiyATB1FAAAcPJmFsxU058.jpg

若主設(shè)備向從設(shè)備讀1個(gè)數(shù)據(jù)會(huì)有以下過程:

起始信號(hào)>從機(jī)地址+寫位ACK>要讀的地址ACK>起始信號(hào)>從機(jī)地址+讀位ACK>地址內(nèi)的數(shù)據(jù)NACK>終止信號(hào)

wKgZomRHMiyAKXDoAAAkzK4W93g109.jpg

若讀多個(gè)數(shù)據(jù)就是“從機(jī)地址+讀位ACK>地址內(nèi)的數(shù)據(jù)NACK”重復(fù)幾次

③STM32 IIC控制器介紹

STM32這種芯片是具有IIC控制器的,這樣可以通過硬件產(chǎn)生IIC時(shí)序;但有些簡(jiǎn)單的單片機(jī)就可能沒有IIC控制器,那我們?nèi)绾?/span>與IIC設(shè)備通訊呢?答案就是軟件模擬IIC時(shí)序,軟件模擬IIC時(shí)序相比更加操作繁瑣、效率低。

STM32的IIC片上外設(shè)是用來專門實(shí)現(xiàn)IIC通訊協(xié)議的,我們只要配置好該外設(shè),就可以產(chǎn)生通訊信號(hào)、收發(fā)數(shù)據(jù)并緩存起來,CPU檢測(cè)外設(shè)的狀態(tài)和訪問數(shù)據(jù)寄存器就能完成數(shù)據(jù)的收發(fā),這樣減輕了CPU的工作負(fù)擔(dān)、使得軟件設(shè)計(jì)的效率提高。

以下是STM32 IIC控制器的框圖:

wKgaomRHMi2AG_D2AAJkjKYFaiw398.jpg

引腳對(duì)應(yīng)表:

wKgaomRHMi2AEdi2AACXiu1X8uc847.jpg

聲明:本文內(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)注

    112

    文章

    16103

    瀏覽量

    177078
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354299
  • IIC總線
    +關(guān)注

    關(guān)注

    1

    文章

    66

    瀏覽量

    20273
  • 通信原理
    +關(guān)注

    關(guān)注

    10

    文章

    124

    瀏覽量

    31727
  • 總線協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    115

    瀏覽量

    14834
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    IIC信號(hào)線需要增加上拉電阻,是因?yàn)?b class='flag-5'>IIC的IO是什么

    IIC通信中扮演著至關(guān)重要的角色,而上拉電阻的加入則是實(shí)現(xiàn)這種通信方式有效性和可靠性的關(guān)鍵。以下是對(duì)此現(xiàn)象的介紹: 一、IIC通信與開漏輸出
    的頭像 發(fā)表于 10-06 15:50 ?377次閱讀

    IIC通信模式下,如何提高INA260測(cè)量電流的精度?

    IIC通信模式下,如何提高INA260測(cè)量電流的精度?
    發(fā)表于 08-19 06:18

    示波器如何捕獲和分析IIC波形?

    示波器捕獲和分析IIC(集成電路間通信)波形是一項(xiàng)重要的電子測(cè)量任務(wù),特別是在嵌入式系統(tǒng)和微控制器的調(diào)試過程中。
    的頭像 發(fā)表于 05-20 15:08 ?2635次閱讀

    stm8的供電電壓是3.3V,IIC從機(jī)的供電電壓是5V,請(qǐng)問這個(gè)IIC能正常通信嗎?

    請(qǐng)教一下,stm8的供電電壓是3.3V,IIC從機(jī)的供電電壓是5V,請(qǐng)問這個(gè)IIC能正常通信嗎?是不是只要stm8的耐壓是5V就沒問題?
    發(fā)表于 05-07 08:01

    stm32f103z系列硬件IIC從機(jī)不能用的原因?

    如題,我在STM32F103C8 48腳下寫的IIC PB6 PB7 硬件IIC從機(jī)可以使用, 把上面的程序改為STM32F103ZE 144腳下的寫的
    發(fā)表于 05-07 06:56

    stm8s103k與AT24C02的iic通信不穩(wěn)定是什么原因?qū)е碌模?/a>

    stm8s103k與AT24C02的iic通信不穩(wěn)定,有時(shí)可以讀取數(shù)據(jù),有時(shí)讀不出 是什么原因? 有人與ADS1110用iic通信過嗎?
    發(fā)表于 04-30 07:33

    請(qǐng)問STM32F429硬件IIC需要外圍上拉電阻嗎?

    如題,STM32F429使用IIC通信的時(shí)候,是否需要外加上拉電阻? 看過很多資料,都說是需要上拉電阻,讓人郁悶的是,這次設(shè)計(jì)硬件的時(shí)候,偏偏忘記了加,于是乎我進(jìn)行了測(cè)試, //使能IO引腳
    發(fā)表于 04-24 06:35

    STM32F407與LTC4151-1之間通過GPIO模擬的IIC進(jìn)行數(shù)據(jù)通信,LTC4151-1沒有回應(yīng)答怎么解決?

    STM32F407與電源采樣芯片(LTC4151-1)之間通過GPIO模擬的IIC進(jìn)行數(shù)據(jù)通信,現(xiàn)在的現(xiàn)象是LTC4151-1沒有回應(yīng)答,哪位朋友做個(gè)類似的案列,請(qǐng)幫忙解決一下。
    發(fā)表于 03-27 07:57

    VC++串口通信詳解

    電子發(fā)燒友網(wǎng)站提供《VC++串口通信詳解.doc》資料免費(fèi)下載
    發(fā)表于 03-24 09:36 ?0次下載

    STM32 IIC通信升級(jí)系統(tǒng)

    諸神,需求一套可以使用IIC通信升級(jí)固件的系統(tǒng) 1,STM32燒錄板,型號(hào)自定,盡量低成本,程序 2,STM32G031G8U6目標(biāo)板示例程序 有人能做這項(xiàng)目嗎?或者大家有好的思路嗎?
    發(fā)表于 03-20 12:40

    FPGA實(shí)現(xiàn)IIC協(xié)議的設(shè)計(jì)

    今天給大家?guī)淼氖?b class='flag-5'>IIC通信IIC協(xié)議應(yīng)用非常廣泛,例如與MPU6050進(jìn)行通信,配置OV5640攝像頭、驅(qū)動(dòng)OLED屏幕等等,都需要使用到IIC
    的頭像 發(fā)表于 03-04 10:49 ?1151次閱讀
    FPGA實(shí)現(xiàn)<b class='flag-5'>IIC</b>協(xié)議的設(shè)計(jì)

    GD32 MCU碰到IIC總線卡死怎么辦?

    大家在使用MCU IIC通信時(shí),若碰到設(shè)備復(fù)位或者總線干擾等情況,可能會(huì)導(dǎo)致IIC總線卡死,表現(xiàn)上總線上SDA或者SCL其中一根線為低電平,IIC總線一直處于busy狀態(tài)。此時(shí)若代碼上
    的頭像 發(fā)表于 02-24 09:46 ?3613次閱讀
    GD32 MCU碰到<b class='flag-5'>IIC</b>總線卡死怎么辦?

    【CW32學(xué)習(xí)筆記】IIC接口-主機(jī)發(fā)送

    接著就是比較重要的部分了,IIC接口的收發(fā)并不是全自動(dòng)的,因?yàn)橐粋€(gè)完整的通信不僅包括發(fā)數(shù)據(jù)(地址、數(shù)據(jù)什么的),還包含收數(shù)據(jù)(啥也不干也得接收ACK信號(hào)),所以IIC通信的每個(gè)部分基本
    的頭像 發(fā)表于 01-10 15:59 ?593次閱讀
    【CW32學(xué)習(xí)筆記】<b class='flag-5'>IIC</b>接口-主機(jī)發(fā)送

    芯知識(shí) | 什么是語音芯片的IIC控制模式?

    Inter-IntegratedCircuit,是一種串行通信協(xié)議,用于連接微控制器和各種外設(shè)芯片。在語音芯片中,IIC控制模式是指通過IIC接口對(duì)語音芯片進(jìn)行控制和數(shù)據(jù)傳輸?shù)姆绞?。與傳統(tǒng)的
    的頭像 發(fā)表于 12-20 08:41 ?524次閱讀
    芯知識(shí) | 什么是語音芯片的<b class='flag-5'>IIC</b>控制模式?

    stm32啟動(dòng)過程詳解

    STM32啟動(dòng)過程詳解 近年來,STM32微控制器在嵌入式系統(tǒng)中的應(yīng)用越來越廣泛。STM32微控制器具有高性能、低功耗、易擴(kuò)展和豐富的外設(shè)接口等優(yōu)勢(shì)。而要讓
    的頭像 發(fā)表于 12-08 15:47 ?1468次閱讀