摘要:為了充分節約能源,提高路燈控制系統的智能化,介紹了一種基于STC 單片機的智能LED 路燈控制器,引入在線監測、PWM 和電力線載波通信技術,實踐應用效果良好,具有成本低、運行穩定的特點。本控制器對智能化路燈管理有很大幫助,應用前景廣闊。
當前巨量的能源消耗和由此引起的能源短缺、價格上漲等已使得節約能源成為一項十分迫切的任務。各國消耗的能源中很大一部分用于照明,其中城市公共照明(主要是道路照明和景觀照明)在我國照明耗電中占30%.有資料顯示,每年用于照明的電力在3 000 億度以上,若采用LED 照明,每年就可以節約1/3 的照明用電,基本上相當于總投資規模超過2 000 億元的三峽工程的全年發電量。綜合以上優點,LED光源自然成為城市公共照明的首選,同時目前國內大部分城市的道路照明管理系統直至現在仍在沿用簡單的光控、鐘控等傳統控制方式。這些系統普遍存在著難以反饋路燈運行狀態信息、難以進行遠程控制等局限,基本沒有節電效果,并且采用傳統的人工巡檢,不僅使路燈管理部門的任務繁重,也增加了運行維護的費用。考慮到這些因素,本文針對LED 光源開發了智能路燈控制器。結合LED 光源的特點,并引入了電力線載波通信技術,PWM 調光技術。
1 LED 技術概述
1.1 體積小而堅固耐用
LED 基本上是一塊很小的晶片被封裝在環氧樹脂里面,它比燈泡和熒光燈管都堅固。燈體內也沒有松動的部分,不易損壞。
1.2 耗電量低
一般來說LED 的工作電壓是2~3.6 V.工作電流是0.02~0.03 A.這就是說:它消耗的電不超過0.1 W.
1.3 使用壽命長
當光通量衰減到80%時,其壽命達到了25 000 h.而金屬鹵化物燈的壽命在6 000~12 000 h,高壓鈉燈的壽命是12 000 h.
1.4 調光功能
由于LED 的工作范圍較大,其光輸出和工作電流成正比,因此可以通過減小電流的方法來調光。LED 的調光還可以采用脈沖寬度調節的方法來得到,通過調節電壓的占空比和工作頻率,有效調節LED 的發光強度。
1.5 環保
LED 是由無毒的材料制成,不像熒光燈含水銀會造成污染,同時LED 也可以回收再利用。
1.6 光色、顯色性好
在中間視覺水平下,人眼在高色溫環境里比低色溫環境更容易辨別事物。白光LED 的顯色性也比高壓鈉燈好很多,高壓鈉燈的顯色指數只有20 左右,而白光LED 可以達到65~80.
2 系統的工作原理
智能LED 路燈控制器是作為智能路燈控制系統參考的一部分,主要由STC 單片機、采樣電路、載波收發模塊等組成。系統上位機的命令和控制器的反饋都通過載波模塊利用電力線進行收發;路燈的電壓、電流由采樣電路實時采集;單片機實時處理采集的電壓、電流,進行判斷處理,同時判斷執行上位機的指令,及時反饋路燈的信息。
3 硬件電路的設計
3.1 主要器件的選擇和相關的性能
STC12C5404AD 單片機是一款高速、寬電壓、低功耗的增強型8051 內核單片機,最高16 k 字節片內Flash 程序存儲器,512 字節片內RAM 數據存儲器。STC12C5404AD 有10 位ADC 通道捕獲/ 比較單元,6 個16 位定時器,硬件看門狗,高速SPI 通信端口,全雙工異步串行口,每個通用I/O 口驅動能力均可達到20 mA.在線可編程,無需編程器,無需仿真器,可遠程升級,有效節約成本,方便客戶的各種應用。
PL2102 是特別針對中國電力網惡劣的環境所研制開發的低壓電力線載波通信芯片。它僅由單一的+5 V 電源供電,以及一個外部的接口電路與電力線耦合。PL2102 除具備基本的通訊控制功能外,還內置了五種常用的功能電路:可數字頻率校正的實時鐘電路、32 Bytes SRAM、電壓監測、看門狗定時器及復位電路。它們通過標準的I2C 接口與外部的微處理器相聯,其中實時鐘與32 Bytes SRAM 在主電源掉電的情況下可由3 V 備用電池供電繼續保持工作。由于采用大規模數字/ 模擬混合0.35 μm CMOS 工藝制作,所以在抗干擾、抗衰落性能以及國內外同類產品性能價格比等方面有著出眾的表現。
3.2 通信技術特點
本控制器采用了主流的擴頻通信技術,有效提高了通信的可靠性,同時創造性的采用動態路由算法,可靠的延長了控制范圍。
(1)擴頻通信技術其信號所占有的頻帶寬度遠大于所傳信息必須的最小帶寬。頻帶的展寬是通過編碼及調制的方法來實現的,與所傳信息數據無關。接收端使用與發送端相同的擴頻碼進行相關解調,恢復出所傳輸的信息。根據香農關于信道容量的理論:
C=WLog2(1 十P/N)。
式中:C 稱為信道容量;W 是頻帶寬度;P/N 是信號與噪聲的功率比。此式說明:在保持信息容量C 不變的條件下,可以有不同的W 和P/N,亦即,如果頻帶寬度變寬,信道的信噪可以比較低,而可以達到同樣的信道容量(有效的信息傳輸速率)。甚至,在信號被噪聲淹沒的情況下,只要相應地增加信號傳輸帶寬,也能夠達到可靠傳輸的目的。擴頻通信就是基于這一原理。
(2)動態路由方法需要在集中器建立中心路由表和信息素表,各終端建立子路由表,集中器和所有終端都要建立各自的電氣距離表, 用來記錄與其能夠直接通信的其他終端的電氣距離。算法主要包含路由發現和路由維護兩部分,下面分別進行描述。
路由發現,是指按一定的規則來尋找并發現路由,即路由邏輯樹的建立過程。集中器根據目的終端的回應信號建立中心路由表,其他終端通過接收或監聽電力線上的信號,根據計算出的電氣距離值不斷地更新其電氣距離表,從而調整其可直達節點路由表。
載波信號從集中器出發,根據約束集的約束、信息素濃度τi,j以及問題的啟發信息,按一定策略選擇下一終端,直至到達目標終端。同時載波信號按原路徑返回,回到集中器之后,對路徑質量進行評估, 采用全局更新規則對迭代或全局最優路徑上的信息素濃度進行更新。
由于電力線信道環境隨時間會發生緩慢的變化,信息素表中在較早時間里獲得的信息素會逐漸失去代表電力線信道當前環境狀況的效力,所以對其他路徑的信息素采取定期按照一定比例揮發的機制。同時為了避免搜索出現停滯現象,設定了路徑上信息素的濃度值的上、下限。當獲得的最優路徑達到要求的精度時,認為本次路由發現完成。集中器通過不斷發出尋路信號,來完成各終端的路由發現過程,最終建立到達各終端的中心路由表。
算法中,載波信號在選擇下一個節點的時候,采用了氣距離作為約束的候選集策略,并結合了確定性隨機性的選路原則。首先,設定一個能正常通的電氣距離的閥值,當電氣距離大于這一閥值時,認為信道狀態較差,兩節點間不能直接通信。
從大量的實驗結果來看,最大可通信距離附近的節點在通信上并不穩定,不適合作為中繼使用,所以,在算法中選擇電氣距離為閥值的[1/2,3/4]這個區間上的節點作為下一節點的候選集。同時通過公式(1)作為下一節點的選擇策略。
式中:pi,j(t)為在第t 次迭代中,編號為i 的節點到編號為j 的節點的轉移概率;τi,j(t)為路徑(i,j)上的信息素強度;a 為信息素調整因子;ηi,j為節點i 到節點j 的電氣距離值;allowed 為載波信號下一跳候選節點集合;q 為在[0,1]區間隨機產生的服從均勻分布的隨機數;q0為載波信號選擇下一跳的概率度量閥值。當q≤q0時,載波信號選擇信息素最大的路徑節點作為下一跳節點,這就是確定性選擇策略,當q》q0時,根據公式(2),用賭輪法隨機選擇下一跳,這就是隨機性選擇策略。算法的確定性使選擇趨向于獲得最優候選解,而隨機性則通過擾動來發現新的解,防止陷入局部最優。
路由維護是指當以前的路由變得無效時或為了尋找一條更加適合當前電力線狀況的更優路由,需要對路由表進行更新的過程。當集中器按照中心路由表中的路由向目標終端發送控制命令,由于該路由中某一路徑上的負載變大或受到強干擾而使通信失敗,則集中器在確認該路徑已經不適合當前信道的情況下,將重新選擇路由或使用路由發現規則尋找到達目標節點的新路由。進行路由維護的搜索過程是針對個別節點或局部區域節點進行的,因此可以大大地節約時間。
3.3 電路設計
STC 單片機將路燈電壓、電流的現場數據進行采集,利用單片機內部AD 進行轉換并與正常的上下限值進行比較得到路燈的運行狀態信息,判斷是否向上位機報警。STC 單片機的PWM 引腳輸出占空比可調的信號,直接控制LED 驅動芯片,調節LED 光源的亮度,實現有效的節能。電力載波模塊將需要傳遞的信息利用電力線進行收發。控制器整體結構見圖1.
圖1 整體結構
如圖2、圖3 所示,電壓、電流采集電路[3]分別通過電壓、電流互感器感應交流的電壓、電流,再通過I-V 互換得出相應電壓值。
圖2 電壓采集電路
圖3 電流采集電路
電力載波通信由PL2102 和STC 單片機配合操作完成,主要外圍電路有功率放大電路、濾波整形電路、耦合電路組成。電力載波通信主要電路組成見圖4.
圖4 載波電路
功率放大電路是用來將PL2102 芯片產生的載波調制信號進行功率放大后耦合到電力線上。載波功能被使用后,載波信號由PSK-OUT 輸出,波形為0~5 V 變化的方波,包含豐富的諧波;經過推挽電路進行功率放大后,PSK-OUT 的方波信號被放大為IN 點信號。功率放大電路見圖5.
圖5 功率放大電路
圖7 中電感L1、電容C3 完成整形濾波后,再通過耦合線圈T1 耦合到低壓電力線上,雙向二極管D7 起保護作用。圖7 中包含接收回路部分。R3 在接收本地強發射信號時可以有效吸收衰減;電感L2、電容C6 組成并聯諧振回路,諧振以中心頻率為120 kHz 設計,完成對有效信號的帶通濾波;良好的選頻回路可以有效提高載波接收靈敏度。載波耦合及接收電路見圖6.
圖6 載波耦合及接收電路
4 路燈控制器的軟件設計
軟件程序使用C51 語言,采用模塊化方式編程。軟件主要由主程序、AD 采樣程序、PWM 程序、通信程序組成。
4.1 主程序
系統開始工作后主程序首先對單片機內部及外部的資源初始化,然后依次調用各功能模塊程序。
4.2 A/D 采樣程序
A/D 采樣程序由主程序循環調用,每次對外部10 個模擬量采集12 次,經由數字濾波后送到數據緩沖區,供其他程序使用。
4.3 PWM 程序
單片機將上位機命令解碼后,內部控制寄存器置位,啟動可編程計數器陣列(PCA)/PWM 工作,輸出可調PWM,實現調光的功能。
4.4 通信程序
載波通信模塊提供透明數據傳輸通道,用戶通信的可靠性由用戶的通信協議保證。上位機通過載波通信模塊向路燈控制器發出命令,由STC 命令解碼后,置位相應的寄存器,實現對應功能。
主程序框圖、中斷程序流程圖見圖7、圖8.
圖7 主程序框圖
圖8 中斷程序流程圖
5 結論
智能LED 路燈控制器采用智能化設計,能夠可靠地對城市路燈進行有效的數據采集,自動判斷,自動報警。同時它作為智能路燈系統的一部分,通過電力線載波通信技術與上位機方便地聯系,便捷地接收系統命令并且利用自有的PWM 功能對LED 光源進行調光操作,達到節能要求,具有體積小,工作可靠,控制便捷的優點。智能LED 路燈控制器如能推廣使用,會使城市路燈管理工作提高到一個新的水平,不但節約能源,同時也可減少照明燈具的損耗,因此具有廣泛的推廣前景。
由圖7 所示的脈沖信號控制IGBT 導通和關斷,在負載兩端產生等效于圖4 的電壓,從而使電感L 上的電壓如圖8 所示,最終產生的電流波形如圖9.可以看出,電流波形為線性度良好的三角波。通過實驗驗證得到的數據與理論分析結果相一致,證明了該系統的正確性和可行性。
二、基于Web的單片機遠程監控系統設計方案
摘 要:傳統的遠程監控系統一般采用C/S 模型的方式,針對大型設備,成本高。文章采用SOC 芯片C8051F020 和10M 自適應網絡芯片RTL8019AS 接口的方案,在單片機中嵌入了精簡的TCP/IP 協議棧,構建了基于Web 的單片機遠程監控系統軟、硬件平臺,在此基礎上實現了基于單片機的數據采集和遠程監控,所實現的系統具有成本低廉、操作方便、可靠等優點。
1. 引言
單片機系統以其簡單、高效的特點,在工業控制和日常生活中應用越來越廣泛。目前大多數單片機系統是以51 單片機為核心,與檢測、伺服、顯示設備配合起來實現監控功能。
然而,這些監控系統的數據傳輸多采用RS-232、RS-485 以及各種現場總線,這些方式有些通信速度不夠快,有些距離不夠遠,且各種總線之間難于實現互連和互操作。以太網作為目前應用最為廣泛的局域網,在工業自動化和過程控制領域得到了越來越多的應用。同時,隨著Internet 的普及,現代通信技術的進步,基于TCP/IP 和Client/Server 架構的分布式監控技術也日趨成熟。把嵌入式系統連接到Internet 上,就可以方便、低廉地把信息傳送到世界的任何一個地方。
傳統的遠程監控系統一般采用C/S 模型的方式,主要針對大型的設備進行監控。對于如攝像頭圖象監控﹑家用儀表﹑門禁控制系統等小型的設備的監控就需要采用低成本的方案。
鑒于此,在低成本的單片機系統上移植精簡的TCP/IP 協議簇,實現對于小型設備遠程監控是最佳選擇。該系統以Web 方式實現,用戶可以在任何一臺裝有瀏覽器的PC 機上進行遠程監視與控制,具有價格低廉、操作方便、界面友好等優點。傳統的遠程監控系統模型與本系統采用的模型如圖1 和圖2 所示。
圖1 傳統遠程監控系統模型
圖2 單片機監控系統模型
2. 系統硬件設計
本系統以 Cygnal 公司的完全集成的混合信號系統級芯片(SOC)C8051F020 單片機為核心,采用Realtek 公司的10M 自適應以太網控制器RTL8019AS 實現系統的網絡接口部分。
SRAM 部分用于存放大量的數據信息。數據采集部分用于采集系統需要監控的設備的運行情況,由于C8051F020 內部帶有真正12 位100 ksps 的8 通道ADC 帶PGA 和模擬多路開關,還有兩個12 位DAC 可編程更新時序,可以方便的進行模擬信號采集和對外設進行控制。
C8051F020 單片機內置64K FLASH 程序存儲器、4K 內部SRAM,可以嵌入TCP /IP 協議, 從而實現嵌入式Web Sever 的功能。RTL8019AS 集成了介質訪問控制子層(MAC)和物理層的性能,與單片機的接口簡單,可以方便地用來設計基于ISA 總線的系統。另外,它還具有與NE2000 兼容、軟件移植性好以及價格低廉等優點,所以特別適合用于嵌入式系統。
圖3 系統框圖
3.系統軟件設計
3.1 軟件流圖設計
軟件的實現主要是根據數據在網絡中傳輸的方向和數據的流向來實現的。在本設計中數據的流向為:請求信息從局域網中來,通過RJ 45 送到RTL80l9AS,處理后的數據包送入單片機系統的協議棧,由協議棧對數據包進行解析,得到原始請求信息。請求信息再經過單片機系統的處理,產生回復信息。回復信息到局域網的過程與上面正好相反。整個系統的軟件流程如上圖4 所示。
圖4 軟件框圖
3.2 RTL8019 接收與發送數據
1.RTL8019 芯片初始化主要是將網卡設置成正常的模式,跟外部網絡連接。清除所有中斷標志位,讓芯片開始工作。
2.對RTL8019 接收數據操作,有查詢和中斷兩種方式。因為單片機的速度和PC 機相差太遠,而且還有一些采集任務,本系統不采用中斷方式,用查詢方式。在查詢方式下,通過查詢CURR 和BNRY 兩個寄存器的值來判斷是否收到一幀數據。當BNRY+1 與CURR不相等,說明接收緩沖區接收到了新的數據幀。圖5 為RTL8019 報頭格式,接收部分子程序如下:
UCHAR xdata * rcve_frame(void) //如收到有效數據包,返回收到的數據,否則返回NULL
圖5 RTL8019 報頭格式
3.數據的發送包含三個步驟:封裝數據包;通過遠程DMA 將數據包送入RTL8019AS的數據發送緩沖區;通過RTL8019 的本地DMA 將數據送入FIFO 進行發送。具體過程如下:
(1)包在發送前應該按規定的格式封裝好,格式如下圖6 所示:
圖6 MAC 幀首部
(2)把上面的數據包通過遠程DMA 寫入RTL8019AS 的數據發送緩沖區;
(3)啟動本地DMA,把數據發送出去,數據包長度最小為60 字節,最大1514 字節。
發送子程序為:void send_frame(UCHAR xdata * outbuf,UINT len)//發送一個數據包3.3 TCP/IP 協議棧的實現。
3.3.1 ARP 協議的實現
ARP 地址解析協議的本質是完成網絡地址到物理地址的映射。物理地址有以太網和令牌環網兩種基本類型,網絡地址特指IP 地址。具體到以太網,使用的是動態綁定轉換的方法,但是會遇到許多細節問題,例如減少廣播,ARP 包丟失,物理地址變更(更換網卡)、移動(移動設備到另一子網)、消失(關機)等。一般是設置ARP 高速緩存,通過學習、老化、更新、溢出算法處理ARP 映射表來解決這些問題。整個ARP 處理過程,主要用5 個函數實現。
在實現網卡驅動程序后,所有ARP 處理操作就是填寫ARP 包。主要程序代碼編制如下:
(1)void init_arp(void)//完成ARP 表初始化,概括說就是ARP 表state 字段清0
(2)void arp_send(UCHAR * hwaddr,ULONG ipaddr,UCHAR msg_type)//完成ARP 請求
(3)void arp_rcve(UCHAR xdata * inbuf)// 完成響應操作
(4)UCHAR xdata * arp_resolve(ULONG dest_ipaddr) //完成從cache 里面查找對應//IP 地址的物理地址,如果沒有,就發送ARP 請求
3.3.2 IP 協議的實現
網際協議 IP 是TCP/IP 協議族中最為核心的協議,它的主要功能是負責把數據交付給主機,當目標主機與原主機處于不同的物理網絡中時,IP 負責把數據包路由到相應的目標網絡上。Internet 上所有的數據都以IP 數據包格式傳輸。IP 協議最大的特點是提供不可靠的和無連接的數據包傳送服務。IP 協議主要實現以下兩個子程序:
(1) void ip_send(UCHAR xdata*outbuf,ULONG ipaddr, UCHAR proto_ id,DINT len)//發送IP 數據;該子程序用來創建一個發送數據報。
(2) void ip_rcve(UCHAR xdata *inbuf) //接收IP 數據;該子程序檢測一個外來數據包,并對數據包作相應的處理。
3.3.3 TCP 協議的實現
1.使用TCP 狀態機:TCP 協議是整個TCP/IP 協議的核心,也是傳輸層中最復雜的協議。TCP 協議在兩個端點之間建立了等效于物理連接的邏輯連接。數據沿著這個連接雙向傳輸。連接的雙方必須對發送和接收的數據保持跟蹤,以便能夠檢測出數據流中的遺漏和重復。
2.使用簡單的確認機制:序列號和確認號這兩個字段用于協同完成TCP 協議中的確認工作。對于每個接收到的數據包進行確認號的計算,需要從接收到的數據包中提取TCP 報文的數據部分長度,并進行計算,這增加了處理器的運算量。但如果每次只對單個TCP 報文進行確認的話,并沒有太大的難度。TCP 協議主要包含的程序如下:
(1) init_tcp(void) //初始化TCP 協議
(1) Tcp_send(UINT flags, DINT hdr_len, UCHAR nr) //發送TCP
(2) Tcp_retransmit(void) //重發TCP 數據
(3) Tcp_inactivity(void) //停止TCP
(4) Tcp_rcve(UCHAR xdata * inbuf, UINT len) //接收TCP 數據
3.3.4 HTTP 協議簡介
HTTP 協議是TCP 協議的高層協議,HTTP 的請求和應答都是一行或多行文本,它的結束標志是一個換行符[5]。如果請求成功,數據就沿著該連接發送,直到發送完為止。HTTP的端口號為80.HTTP 中的命令稱呼為方法(method),其中GET 語句用來獲取文檔,POST語句用來粘貼文檔。通過判斷GET 和POST 語句后面的文件名來判斷所需要傳遞的文件的位置。
請求:
GET / HTTP/1.1
響應:
HTTP/1.1 200 OK
Content-type: text/html
……
《html》
《body》
……
《/body》
《/html》
4.應用部分
本 WEB 服務器系統幾乎可以應用于所有對實時性要求不是很高的場合,只要對本系統的相關部分做些修改或改進,例如:客戶端的訪問權限、IP 地址的過濾等,就可應用于諸如遠程抄表、信息家電的遠程控制等場合。下面圖7 為ping 命令測試網絡不通到通的連接狀態,圖8 實現了局域網內任意主機通過ip 地址形式訪問單片機內部存諸的網頁,從而實現對單片機系統的遠程監控。
圖7 網絡連接測試
圖8 遠程監控溫度
5.結束語
實現了基于單片機的 TCP/IP 協議棧,使單片機控制的系統具有了WebServer 的功能,這樣可以使用PC 機通過因特網遠程訪問單片機系統,也可以使用單片機系統將有用的信息通過因特網發送到遠端的PC 或其它終端上。為嵌入式設備實現遠程數據采集、遠程監控、遠程診斷、遠程幫助、遠程升級、遠程重構等功能提供了可能,這是嵌入式系統發展的趨勢。
三、基于89C52單片機的微電壓信號源設計
1 設計原理
被測設備要求提供0.5~50mV的可調直流模擬電壓,分辨率達10微伏,精度達±0.01mV,溫度跟隨性要好,即要求提供高精度的微電壓信號。
如果采用單片機通過D/A轉換器輸出所需電壓,輸出范圍0~5V,LSB=0.01mV,則D/A轉換器的位數:
X=lg2(5000/0.01)≈19(Bit)
考慮D/A轉換器的量化誤差、溫漂、噪聲和其他各種誤差的影響,至少選擇21Bit以上的D/A轉換器,但目前尚無適合本系統設計的D/A轉換器。因此,在考慮系統分辨率和輸出電壓范圍的前提下,采用如下方案:先將小于50 mV的電壓數值擴大100倍,再用 16Bit D/A轉換器輸出,然后通過200倍的高精密分壓器和超低漂移的運算放大器緩沖輸出。與此同時,采用高位A/D轉換器組成電壓反饋回路,對輸出進行差值補償,進一步提高信號精度和穩定性。 其原理結構如圖1所示。
2 硬件設計
2.1 電壓輸出電路
在單片機(89C52)、D/A轉換器、分壓、運放組成的微電壓輸出電路中,設計的要點是如何用單片機控制D/A轉換器的輸出。本設計采用美國BB公司生產的16位高精度數/模轉換器DAC714(單通道、串行通訊方式,工作電壓±12V或±15V,能實現±10V、±5V和0~10V的模擬電壓輸出)。圖 2是D/A轉換器與單片機的連接電路。DAC714采用 ±15V工作電壓,通過外部連接的增益(OFFS)和雙極性偏移(GADJ)電位計調整,實現對輸出電壓的精度要求。在調節這兩個參數時,為了避免零點對比例調節的影響,應注意先調整比例系數,后調零點。其中,A0為輸入寄存器控制信號,A1為D/A鎖存控制信號,SDI為串行數據輸入。數據控制均為低電平有效,當A0=0時,當前數據進入移位寄存器;當A1=0時,數據進入D/A鎖存。
5V滿刻度的16位DAC714轉換器,1LSB對應76μV。如果輸出端的負載電流為5mA,則60mΩ的線路和接觸電阻,就會產生300μV的壓降;此外,還有印刷電路板產生的壓降。因此,將模擬地和數字地分開,采用單點連接,盡量減小接地回路。模擬插釘互相靠近,有利于模擬與數字信號的隔離,而模擬信號應該盡量遠離數字信號。為了將D/A轉換器與開關電流隔離,模擬地設在D/A周圍或者在其下方的模擬信號和電源的附近,最好在DAC714轉換器的下面將DCOM與ACOM直接接地。
2.2 電壓反饋電路
DAC714轉換器的輸出電壓經精密分壓電路和OPA111BM運放組成的緩沖電路輸出后,理論上完全可達22位分辨率。但是由于溫漂和其他誤差影響,實際輸出時為19位分辨率,精度不能滿足要求,為此,設計了反饋補償電路。用22位A/D轉換器測量實際輸出電壓,在單片機中將實際輸出電壓與理論輸出值比較,其差值信號作為DAC714的補償電壓輸出,確保了電壓輸出精度。
圖3是由ADS1212組成的電壓反饋電路。 ADS1212是美國BB公司生產的高精度、寬動態特性的22位單通道Δ-Σ模擬/數字轉換器。其差動輸入端直接與微小的電壓信號相連。由于采用了低噪聲的輸入放大器,在轉換速度為10Hz時仍可獲得20位的有效分辨率。它有一個靈活的同步串行接口,單一+5V供電,有內/外參考電壓和內部自校準系統。與外部器件接口的形式有雙線制、三線制、四線制和多線制,此處采用三線制來實現與單片機的接口,接口信號是數據準備就緒線(DRDY)、數據輸入輸出線 (SDIO)、時鐘信號線(SCLK)。
2.3 溫控電路
為了進一步降低溫漂的影響,必須保證系統工作溫度變化在一個較小的范圍內,為此,設計了自動恒溫控制電路。該電路由TMP01溫度控制芯片(AD公司)和加溫、降溫電路等組成。
TMP01通過外接電阻值來設定高、低溫度控制點。當系統溫度高于或低于設定值時,輸出電壓控制信號,啟動加溫或降溫電路的工作。TMP01溫度控制精度達±1℃,負載能力達20mA,可直接驅動繼電器。
3 軟件流程
本電壓信號源采用液晶顯示屏顯示漢字和數字,可通過按鍵直接控制輸出電壓的大小。用匯編語言編程,實現電壓的自動輸出。軟件流程如圖4所示。
4 結束語
本文介紹的數字式微電壓信號源,利用精密分壓和反饋補償原理,實現了用16位D/A數模轉換器輸出19位分辨率的直流電壓的目標。部隊實際使用表明,采用單片機控制的數字式微電壓信號源不僅電壓精度穩定,而且成本低,體積小,提高了測試自動化的程度。
四、一款自制簡易示波器設計
這款簡易示波器的性能如下:
1.電壓擋位:200mV、500mV、1V、2V、5V、12.5V、25V、50V。
2.頻率擋位:12MHz、6MHz、4MHz、3MHz、2MHz、1MHz、500kHz、250kHz、100 kHz、50kHz、25kHz、10kHz。
3.能較好地測量300 kHz的波形。
這次DIY的示波器性能雖然較弱,僅僅能用來測試音頻等300kHz以下頻率的周期波形。不過它還有一個實用的功能,可以用來測試+/-50V的電壓(量程是自動切換的)。
主要零件
編號 零件名稱 數量
1??? ATMEGA8單片機 1
9???24MHz有源晶振 1
8???128x64液晶屏
[ST7565控制器] 1
2??? 5532運放 2
3???AD603壓控放大器 1
4??? TLV5618[DA] 1
5??? ADS830E[AD] 1
6??? IDT7205 1
7??? ILC7660 2
10??? 1117-5.0 2
11??? 1117-3.3 1
12??? 79L05 1
13?????? 繼電器 2
14?電容、電阻、二極管 若干
15??? 三極管 2
16??? 洞洞板 1
17??? 按鈕 2
這個版本示波器的電路原理如圖1所示。電路制作時,我用了1塊16cm×10cm的萬用板,電路中僅僅使用2個按鈕來操作示波器,因為我只使用了一片M8單片機作為控制器,1個按鈕用于循環改變采樣頻率,另一個按鈕用來選擇信號的耦合方式,直流或者交流耦合。
大家要問了,如何用一片 M8 單片機產生12MHz的采樣時鐘呢?呵呵,其實我對M8單片機進行了超頻,使用24MHz的有源晶振作為它的時鐘頻率。然后,通過定時器2的比較匹配翻轉電平,以產生不同的時鐘。當OCR2=0時,單片機的OC2引腳就能產生12MHz的方波了。當然,如果大家不想超頻,那么最高的采樣頻率就是16MHz的一半,8MHz了。因為,M8的技術手冊上建議最高為16MHz的時鐘,而比較匹配的最高頻率為系統時鐘的2分頻,即8MHz。本次制作的源代碼使用WinAVR編譯。如果使用16MHz的晶振,請自行修改源代碼。
電路中,被測量的信號,經過500kΩ、480 kΩ、20 kΩ電阻串聯回路,通過繼電器進入第1個運放,運放起到阻抗匹配的作用,因為AD603的輸入電阻僅為100Ω。單片機通過繼電器選擇合適的衰減倍數,在默認情況下,為1/2倍的衰減。在測量較大的電壓時,單片機會選擇1/50 的衰減。選擇衰減的目的是為了方便后期的2次放大。后期放大使用了一片AD603,它是壓控放大器。通過改變GPOS(第1腳)與GNEG(第2腳)之間的電壓差,即可控制它的放大倍數。AD603的GPOS(第1腳)的電壓通過一片DA5618控制,它是12位串口DA,它的參考電壓為1.25V,由2個電阻分壓而得。整個電路的運放可以使用NE5532、AD8066、LM6172等,它們的引腳都是兼容的。由于采樣的速度比較快,遠大于M8單片機的讀取及處理速度,所以通過IDT7205來緩沖高速采樣的電平數據。最后,單片機讀取采樣的數據,并在128×64的液晶上顯示。
評論
查看更多