<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 基于A(yíng)Ttiny13的模擬量隔離采集

基于A(yíng)Ttiny13的模擬量隔離采集

作者: 時(shí)間:2009-12-25 來(lái)源:網(wǎng)絡(luò ) 收藏

  1 概 述

  在工控應用中,模擬信號采集通常需要采用技術(shù),以避免大型電氣設備啟合或切換過(guò)程中造成的電源和地線(xiàn)波動(dòng)影響弱電控制系統。常見(jiàn)的方法主要有放大器、電磁隔離和光電隔離3種方式。隔離放大器,精度很好,但成本高;電磁隔離,設備體積較大,精度較差。

  光電隔離技術(shù)是一種非常有效的抗干擾手段。光耦作為常見(jiàn)的光電隔離器件,主要用于數字量隔離傳輸。如果使用光耦傳輸,那么要求光耦的非線(xiàn)性度非常小,以保證輸入的模擬信號的線(xiàn)性,絕大部分的光耦都很難達到。為了實(shí)現對的光電隔離采集,必須先進(jìn)行模/數(A/D)轉換,才能將轉換后的數字量經(jīng)由光耦傳遞給下一級電路。

  傳統方法,直接使用A/D芯片進(jìn)行模/數轉換,然后經(jīng)光耦傳輸。按接口形式,A/D芯片可分并行和串行訪(fǎng)問(wèn)2種方式。并行A/D芯片采集精度越高,并行數據線(xiàn)占用的光耦數目越多,而且需要配以控制A/D轉換操作相應的隔離信號,這種方式接線(xiàn)多,占用資源也多;串行A/D芯片可以節省不少光耦,但需要復雜的時(shí)序才能完成對A/D的讀寫(xiě)操作。

  本文提出一種使用集成A/D的微型單片機AT-tiny13進(jìn)行模擬量隔離采集,使用單根數據線(xiàn)完成數據傳輸。模擬量隔離采集采用了簡(jiǎn)化的UART通信方式,即單工通信方式,只需要發(fā)送線(xiàn)TXD,無(wú)需接收線(xiàn)RXD。這樣,單根數據線(xiàn)就能承擔發(fā)送A/D轉換值任務(wù),接收方只要具備硬件UART或軟件UART(接收),就可以輕松獲取隔離模擬量值。

  2 簡(jiǎn)介

  具有1 KB Flash,64字節EEPROM,64字節SRAM,6個(gè)通用I/O口線(xiàn),32個(gè)通用工作寄存器,1個(gè)具有比較模式的8位定時(shí)器/計數器,片內/外中斷,以及4路10位ADC。

  3 硬件設計

  模擬量隔離采集電路如圖1所示。有2路10位ADC可控選擇,本設計中只使用了1路ADC。光耦PC817用于傳輸A/D轉換值。CLKI代表從外部引入的時(shí)鐘源。

模擬量隔離采集電路

  4 軟件UART

  ATtiny13內部沒(méi)有集成UART功能。為了彌補這一缺陷,可以使用軟件控制I/O引腳模擬UART功能,按照設定的采集速率將A/D轉換值經(jīng)光耦隔離輸出。

  4.1 異步串行協(xié)議

  采用UART異步串行協(xié)議通信時(shí),數據按順序逐位輸出。接收方通過(guò)監測起始位(低電平有效)和停止位(高電平有效)來(lái)判斷一幀信息的起始與結束。數據幀中還可包括若干數據位和奇偶校驗位。異步串行協(xié)議的起始位與停止位必須使用,其余各位可調整位長(cháng)度。異步串行協(xié)議格式如下:

異步串行協(xié)議格式

  本文定義幀格式為:起始位(1位),數據位(5位),無(wú)奇偶校驗位,停止位(1位)。ATtiny13自帶精度為10位的A/D轉換器,而數據位設定為5位寬度,所以需要連續發(fā)送2次異步串行通信幀,才能將一次A/D轉換值傳送完整。按照高位先出的方法,前1次發(fā)送A/D轉換值的高5位,后1次發(fā)送低5位。

  4.2 波特率設置

  波特率是UART異步串行通信中非常重要的參數。通信雙方必須以約定好的速率通信,才能保證通信成功。波特率與異步串行協(xié)議中“位”所占用的時(shí)間密切相關(guān)。對于二進(jìn)制信號,數據幀中每一位的占用時(shí)間就是波特率的倒數。因此,如何精確確定每一位的時(shí)間寬度,成為確保串口通信成功的關(guān)鍵因素。

  ATtiny13沒(méi)有集成UART,但內部含有一個(gè)8位定時(shí)器/計數器,可利用軟件控制該定時(shí)器產(chǎn)生波特率。MCU自帶的RC振蕩器可以作為時(shí)鐘源,但是振蕩頻率存在最大±10%的誤差,并且受溫度影響較大。這樣會(huì )造成波特率不穩,通信時(shí)可能出現接收不到數據,或者丟數據位、出現亂碼和錯碼的情況。ATtiny13從外部引入了7.372 8 MHz有源晶振時(shí)鐘信號,從而保證了主時(shí)鐘頻率的穩定性。

  異步通信波特率可按式(1)計算。

公式

  式中:XTAL為引入的主時(shí)鐘頻率;Baud為需設置的波特率;C為定時(shí)器時(shí)鐘分頻系數;n為8位定時(shí)器/計數器的預加載比較值。定時(shí)器/計數器工作在CTC模式(比較匹配時(shí)清零定時(shí)器)。

  XTAL即7.372 8 MHz,Baud設定為9 600,定時(shí)器時(shí)鐘信號為主時(shí)鐘4分頻(即C=4),可得n=192。據此,8位定時(shí)器/計數器從0計到192時(shí),產(chǎn)生比較中斷,軟件控制發(fā)送新的一位信息。

  4.3 數據發(fā)送

  UART異步串行協(xié)議規定了在沒(méi)有數據幀發(fā)送時(shí),通過(guò)邏輯“1”表示目前處于閑置狀態(tài)。如果有數據需要發(fā)送,首先將發(fā)送線(xiàn)TXD拉低成邏輯“0”,并保持一個(gè)基本時(shí)間單位;之后根據待發(fā)送數據的二進(jìn)制數值,依次逐位輸出。本設計中未使用奇偶校驗位,相關(guān)處理略去。5位數據發(fā)送完畢后,緊接著(zhù)將TXD拉高為邏輯“1”,表示該幀結束。軟件UART發(fā)送流程如圖2所示。

軟件UART發(fā)送流程

  函數Uart_SendByte(unsigned char data)實(shí)現了上述功能,一次發(fā)送5位數據。在模擬量隔離采集中,單片機不斷地獲取A/D轉換值,并通過(guò)調用上述函數發(fā)送出去。

  結 語(yǔ)

  本文介紹一種基于A(yíng)Ttiny13的模擬量隔離采集電路,受ADC最大采樣速率及光耦PC817傳輸帶寬的限制,只適用于頻率變換緩慢的模擬信號。該電路體積小、成本低、接線(xiàn)簡(jiǎn)單,已用于開(kāi)關(guān)電源成品檢測。



關(guān)鍵詞: 隔離 ATtiny13 模擬量 數據采集

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>