国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

為什么UART驅(qū)動(dòng)1-Wire設(shè)備總是出現(xiàn)問(wèn)題?

工程師 ? 來(lái)源:記得誠(chéng) ? 作者:記得誠(chéng) ? 2020-10-23 17:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

麥?zhǔn)迨歉?a target="_blank">嵌入式的,最近項(xiàng)目delay,他和我說(shuō)用UART驅(qū)動(dòng)1-Wire設(shè)備總是出現(xiàn)問(wèn)題,故寫(xiě)此文來(lái)拯救他。

作者之前寫(xiě)過(guò)UART(點(diǎn)我),也寫(xiě)過(guò)1-Wire(點(diǎn)我),本文介紹如何用主機(jī)的UART驅(qū)動(dòng)1-Wire從機(jī)設(shè)備,建議先看看以上兩篇文章,再閱讀本文,效果更佳。

硬件電路

1-Wire結(jié)構(gòu)簡(jiǎn)單,一根線就可以通信,常見(jiàn)的18B20用的就是1-Wire結(jié)構(gòu)。單片機(jī)的串口UART(多是TTL電平),如何用單片機(jī)控制通用的1-Wire設(shè)備呢?如果MCU和從設(shè)備的電平不一致如何解決?軟件協(xié)議又是如何控制的呢?本文主要解決這兩個(gè)問(wèn)題。

主機(jī)或從機(jī)將數(shù)據(jù)線拉低到GND表示數(shù)據(jù)0,將數(shù)據(jù)線釋放為高表示數(shù)據(jù)1,高電平由上拉電阻(一般是4.7K)提供。

當(dāng)MCU發(fā)送邏輯1時(shí),經(jīng)過(guò)反相器,總線呈現(xiàn)邏輯0,邏輯0經(jīng)過(guò)1-WIRE器件的反相器,即會(huì)收到邏輯1;

當(dāng)MCU發(fā)送邏輯0時(shí),經(jīng)過(guò)反向器,總線呈現(xiàn)邏輯1,邏輯1經(jīng)過(guò)1-WIRE 器件的反相器,即會(huì)收到邏輯0;

當(dāng)1WIRE 器件發(fā)送邏輯1時(shí),Tx處有NMOS會(huì)導(dǎo)通,總線呈現(xiàn)邏輯0,經(jīng)過(guò)MCU Rx 處的反相器,MCU會(huì)收到邏輯1;

當(dāng)1WIRE器件發(fā)送邏輯0時(shí),NMOS截止,總線呈現(xiàn)邏輯1,MCU會(huì)收到邏輯0;

主機(jī)端(BUS MASTER)多為MCU,因?yàn)镸CU的TXD不是漏極開(kāi)路,因此通常需要一個(gè)外部漏極開(kāi)路緩沖電路,該電路可以由分立元件構(gòu)成。

用兩個(gè)NMOS管2N7002,原理很簡(jiǎn)單:

TXD輸出高電平時(shí),左邊的2N7002導(dǎo)通,右邊的截止,DQ被4.7K電阻上拉至Vpullup高電平;

TXD輸出低電平時(shí),左邊的2N7002截止,右邊的導(dǎo)通,DQ被拉低至低電平0;

用分立器件搭建的緩沖電路

也可以用集成芯片NC7WZ07,如下圖所示,TXD輸出高,DQ=Vpullup,TXD輸出低,DQ=0;

用集成芯片搭建的緩沖電路

解決了硬件電路,我們?cè)賮?lái)看軟件協(xié)議部分,1-Wire的協(xié)議可以分為復(fù)位/應(yīng)答、寫(xiě)0/寫(xiě)1時(shí)隙、讀0/讀1時(shí)隙。

軟件協(xié)議

復(fù)位/應(yīng)答

如下圖,上面部分是1-Wire的復(fù)位/應(yīng)答時(shí)序,下面是UART的時(shí)序。

復(fù)位/應(yīng)答信號(hào)時(shí)序

原理:

主機(jī)以9600的波特率發(fā)送數(shù)據(jù)0XF0,因?yàn)長(zhǎng)SB在前,0XF0=00001111,加上最前面的Start Bit和最后面的Stop Bit,完整的數(shù)據(jù)為:0000011111,代表主機(jī)先發(fā)了5位的0,然后發(fā)了5位的1;9600波特率,一位傳輸時(shí)間是1/9600=104.2us,所以低電平持續(xù)時(shí)間為104.2*5=521us,滿(mǎn)足480~960us復(fù)位總線的時(shí)序要求。

那主機(jī)收到什么數(shù)據(jù)代表從機(jī)應(yīng)答呢?

首先主機(jī)如果發(fā)送F0后收到還是F0,說(shuō)明從機(jī)沒(méi)有應(yīng)答,從機(jī)應(yīng)答總線數(shù)據(jù)會(huì)改變,可以簡(jiǎn)單的判斷收到的數(shù)據(jù)為非F0即代表從機(jī)應(yīng)答。

根據(jù)1-Wire的時(shí)序波形,也可以進(jìn)行推算,從上圖看,Data0~Data3均為0,因?yàn)?-Wire時(shí)序是有一定時(shí)間范圍,并不是固定的脈寬,如TPDH為15~60us,TPDL為60~240us,所以Data4~Data7是有一定的組合,返回0X10(00001000) to 0X90(00001001)都代表從機(jī)應(yīng)答。

寫(xiě)0/寫(xiě)1時(shí)隙

主機(jī)寫(xiě)0就是0X00,也可以加入回讀,回讀值即為寫(xiě)的值。

寫(xiě)0時(shí)隙

寫(xiě)1就是0XFF,回讀值即為寫(xiě)的值。

寫(xiě)1時(shí)隙圖

讀0/讀1時(shí)隙

關(guān)于讀時(shí)隙,可以先看主機(jī)讀1時(shí),主機(jī)先拉低總線,一般時(shí)間1us左右,UART的Start Bit會(huì)占1/115200=8.7us的脈寬(大于1us),所以從Data0開(kāi)始,后面的數(shù)據(jù)都為1,即讀到的數(shù)據(jù)為11111111(0XFF)代表讀到的是1。

讀1時(shí)隙圖

那讀0也就很簡(jiǎn)單,讀到的數(shù)據(jù)不為0XFF即為0。

讀0時(shí)隙圖

小結(jié)一下

實(shí)際代碼里面的判斷,可以簡(jiǎn)單處理,復(fù)位/應(yīng)答:發(fā)送F0,返回不為F0,即代表從機(jī)應(yīng)答;讀0/讀1時(shí)隙:主機(jī)讀到0XFF即為1,讀到非0XFF即為0;簡(jiǎn)單又可靠,麥?zhǔn)暹€不會(huì)。

今天的文章到這里就結(jié)束了,希望對(duì)你有幫助,我們下一期見(jiàn)。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    463

    文章

    54007

    瀏覽量

    465929
  • 電路
    +關(guān)注

    關(guān)注

    173

    文章

    6075

    瀏覽量

    178376
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6076

    文章

    45494

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    多協(xié)議可編程USB接口適配器

    多協(xié)議可編程USB接口適配器USB2S,全面支持UART/I2C/SPI/CAN/1-Wire USB2S(USB To Serial ports)是一款多功能可編程接口適配器,支持UART、I2C
    的頭像 發(fā)表于 01-15 14:06 ?170次閱讀
    多協(xié)議可編程USB接口適配器

    分享1-Wire接口數(shù)字溫度傳感器IC型號(hào)

    如今,隨著測(cè)溫應(yīng)用環(huán)境的升級(jí)和拓展,精準(zhǔn)的溫度測(cè)量與控制已成為各種環(huán)境數(shù)據(jù)采集的關(guān)鍵,傳統(tǒng)模擬溫度傳感器已經(jīng)無(wú)法滿(mǎn)足市場(chǎng)的要求,而1-Wire接口數(shù)字溫度傳感器IC的出現(xiàn),極大地簡(jiǎn)化了系統(tǒng)設(shè)計(jì)。為此
    的頭像 發(fā)表于 12-02 16:34 ?793次閱讀
    分享<b class='flag-5'>1-Wire</b>接口數(shù)字溫度傳感器IC型號(hào)

    多路UART數(shù)據(jù)轉(zhuǎn)發(fā)芯片 支持1主4從UART接口 UART擴(kuò)展芯片

    多路UART數(shù)據(jù)轉(zhuǎn)發(fā)芯片 支持1主4從UART接口 UART擴(kuò)展芯片 EU104 是一款高性能 UART 數(shù)據(jù)轉(zhuǎn)發(fā)芯片,采用 SOP16 緊
    的頭像 發(fā)表于 11-12 10:33 ?385次閱讀

    怎么通過(guò)UART1對(duì)指紋識(shí)別模塊的控制

    庫(kù)里面的: 注意,uart1對(duì)應(yīng)FPGA接口的GPIOB接口,對(duì)應(yīng)的地址由IOF模式下IOF_UART_MASK配置。 此外,注意將uart1進(jìn)行宏定義,否則會(huì)出現(xiàn)問(wèn)題,這里將其宏定
    發(fā)表于 10-30 06:12

    使用設(shè)備驅(qū)動(dòng)uart數(shù)據(jù)丟幀怎么解決?

    ,115200的波特率下并沒(méi)有出現(xiàn)這個(gè)問(wèn)題。之后我又將設(shè)備驅(qū)動(dòng)接口幾個(gè)函數(shù)中的代碼注釋?zhuān)趓t_hw_usart_init手動(dòng)初始化串口 rcu_periph_clock_enable(RCU_GPIOA
    發(fā)表于 09-26 07:20

    求助,關(guān)于串口設(shè)備驅(qū)動(dòng)fifo問(wèn)題

    現(xiàn)象,一包數(shù)據(jù)包含兩包; 2、大數(shù)據(jù)包出現(xiàn)斷包現(xiàn)象,從未收到完整包; 自己查看認(rèn)為:串口設(shè)備驅(qū)動(dòng)中的fifo不是環(huán)形buf,調(diào)用rt_serial_read();并沒(méi)有把buf中的字節(jié)取出,buf依舊
    發(fā)表于 09-12 08:18

    DS28E01-100 1Kb、保護(hù)型1-Wire EEPROM,帶有SHA-1引擎技術(shù)手冊(cè)

    。DS28E01-100通過(guò)單觸點(diǎn)1-Wire?串行接口進(jìn)行通信,遵循1-Wire協(xié)議,在多個(gè)從器件的1-Wire網(wǎng)絡(luò)中充當(dāng)節(jié)點(diǎn)地址。
    的頭像 發(fā)表于 05-14 14:36 ?1657次閱讀
    DS28E01-100 <b class='flag-5'>1</b>Kb、保護(hù)型<b class='flag-5'>1-Wire</b> EEPROM,帶有SHA-<b class='flag-5'>1</b>引擎技術(shù)手冊(cè)

    DS28E10 1-Wire SHA-1認(rèn)證器技術(shù)手冊(cè)

    器件帶有唯一的64位ROM注冊(cè)碼(ROM ID),由工廠刻入芯片。每次可向存儲(chǔ)器寫(xiě)入4個(gè)字節(jié),安全的低成本工廠編程服務(wù)可對(duì)器件數(shù)據(jù)進(jìn)行預(yù)編程,這也包括SHA-1安全數(shù)據(jù)部分。器件通過(guò)單觸點(diǎn)1-Wire?總線進(jìn)行通信,遵循標(biāo)準(zhǔn)的1-Wir
    的頭像 發(fā)表于 05-14 14:26 ?1320次閱讀
    DS28E10 <b class='flag-5'>1-Wire</b> SHA-<b class='flag-5'>1</b>認(rèn)證器技術(shù)手冊(cè)

    DS28E02 1-Wire SHA-1認(rèn)證器,具有1Kb EEPROM,工作在1.8V技術(shù)手冊(cè)

    。DS28E02通過(guò)單觸點(diǎn)1-Wire?總線進(jìn)行通信,遵循標(biāo)準(zhǔn)的1-Wire協(xié)議,注冊(cè)碼在多器件1-Wire網(wǎng)絡(luò)中充當(dāng)節(jié)點(diǎn)地址。
    的頭像 發(fā)表于 05-14 14:17 ?1106次閱讀
    DS28E02 <b class='flag-5'>1-Wire</b> SHA-<b class='flag-5'>1</b>認(rèn)證器,具有<b class='flag-5'>1</b>Kb EEPROM,工作在1.8V技術(shù)手冊(cè)

    DS2465 DeepCover安全認(rèn)證器具有SHA-256協(xié)處理器和1-Wire主機(jī)功能技術(shù)手冊(cè)

    系統(tǒng)與1-Wire SHA-256從器件通信及操作所要求的SHA-256和存儲(chǔ)器功能。此外,器件執(zhí)行I2C主控制器與所連接的任何1-Wire SHA-256從器件之間的協(xié)議轉(zhuǎn)換。對(duì)于1-Wire
    的頭像 發(fā)表于 05-14 14:09 ?1062次閱讀
    DS2465 DeepCover安全認(rèn)證器具有SHA-256協(xié)處理器和<b class='flag-5'>1-Wire</b>主機(jī)功能技術(shù)手冊(cè)

    DS28E15內(nèi)置1-Wire SHA-256和512位用戶(hù)EEPROM的DeepCover安全認(rèn)證方案

    產(chǎn)生的SHA-256信息認(rèn)證碼(MAC)通過(guò)計(jì)算用戶(hù)存儲(chǔ)器數(shù)據(jù)、SHA-256密鑰、主控制器隨機(jī)質(zhì)詢(xún)碼以及64位ROM ID生成。提供安全的低成本、工廠可編程服務(wù),預(yù)裝器件數(shù)據(jù)(包括SHA-256密鑰)。DS28E15利用Maxim單觸點(diǎn)1-Wire ^?^ 總線通信。
    的頭像 發(fā)表于 05-14 13:59 ?1075次閱讀
    DS28E15內(nèi)置<b class='flag-5'>1-Wire</b> SHA-256和512位用戶(hù)EEPROM的DeepCover安全認(rèn)證方案

    DS28EL15 DeepCover安全認(rèn)證器,帶有1-Wire SHA-256和512位用戶(hù)EEPROM技術(shù)手冊(cè)

    的雙向認(rèn)證。主機(jī)系統(tǒng)利用從-主認(rèn)證檢測(cè)配件的有效性,或確認(rèn)嵌入式DS28EL15來(lái)源可靠。主-從認(rèn)證用于保護(hù)DS28EL15用戶(hù)存儲(chǔ)器不被未經(jīng)授權(quán)的主機(jī)修改。DS28EL15通過(guò)單觸點(diǎn)1-Wire ^?^ 總線高速通信,通信遵守1-Wire協(xié)議,在多點(diǎn)
    的頭像 發(fā)表于 05-14 11:43 ?1030次閱讀
    DS28EL15 DeepCover安全認(rèn)證器,帶有<b class='flag-5'>1-Wire</b> SHA-256和512位用戶(hù)EEPROM技術(shù)手冊(cè)

    DS24L65 DeepCover安全認(rèn)證器,具有SHA-256協(xié)處理器和1-Wire主機(jī)功能技術(shù)手冊(cè)

    轉(zhuǎn)換。對(duì)于1-Wire驅(qū)動(dòng)器,芯片內(nèi)部用戶(hù)可調(diào)定時(shí)器將系統(tǒng)主處理器從繁瑣的1-Wire波形時(shí)序控制中解放出來(lái),支持標(biāo)準(zhǔn)和高速1-Wire通信。1-
    的頭像 發(fā)表于 05-14 11:25 ?953次閱讀
    DS24L65 DeepCover安全認(rèn)證器,具有SHA-256協(xié)處理器和<b class='flag-5'>1-Wire</b>主機(jī)功能技術(shù)手冊(cè)

    DS2475帶1-Wire主機(jī)的DeepCover ECDSA協(xié)處理器技術(shù)手冊(cè)

    DeepCover 嵌入式安全解決方案將敏感數(shù)據(jù)隱藏在多層先進(jìn)的物理安全保護(hù)之下,從而提供非常安全的密鑰存儲(chǔ)。 具有內(nèi)置1-Wire ^?^ 主機(jī)(DS2475)的DeepCover橢圓曲線
    的頭像 發(fā)表于 05-14 11:17 ?956次閱讀
    DS2475帶<b class='flag-5'>1-Wire</b>主機(jī)的DeepCover ECDSA協(xié)處理器技術(shù)手冊(cè)

    DS28E16 1-Wire SHA-3安全認(rèn)證器技術(shù)手冊(cè)

    計(jì)數(shù)器和唯一的64位ROM識(shí)別碼(ROM ID)。唯一的ROM ID用作加密運(yùn)算的基本輸入?yún)?shù),也作為應(yīng)用中的電子序列號(hào)。器件通過(guò)單觸點(diǎn)1-Wire?總線通信。通信采用1-Wire協(xié)議,ROM ID作為多器件1-Wire網(wǎng)絡(luò)中的
    的頭像 發(fā)表于 05-13 15:18 ?1085次閱讀
    DS28E16 <b class='flag-5'>1-Wire</b> SHA-3安全認(rèn)證器技術(shù)手冊(cè)