一、宿舍智能報警系統(tǒng)設計方案
摘要:該系統(tǒng)以凌陽公司的16位單片機SPCE061A作為主控制器,通過煙霧傳感器與人體熱釋電紅外傳感器分別感應煙霧與人體紅外信號,通過單片機做出報警動作。本系統(tǒng)設計主要是滿足宿舍自動報警的需要,設計的目標是要實現(xiàn)語音報警、時間設定和顯示、燈光報警并實現(xiàn)網(wǎng)絡報警等功能。
1 設計方案
1.1 主控制器的選擇
采用凌陽公司的16位單片機SPCE061A作為主控制器。由于SPCE061A內(nèi)置有2 KB的SRAM和32 KB的內(nèi)存FLASH,能滿足本系統(tǒng)存儲密碼及各類數(shù)據(jù)的要求,且CPU時鐘頻率高達49.152 MHz,能保證響應的快速性,內(nèi)置的語音模塊更提高了系統(tǒng)人機界面的友好性。
1.2 異地監(jiān)控方案選擇
采用無線通信方式。使用無線收發(fā)模塊NRF2401進行無線通信。這種通信方式不受線路長短影響,主從站位置可任意設置,布置比較靈活。
1.3 貴重物品檢測方案選擇
門框?qū)捯话阍?~2 m,采用射頻收發(fā)模塊實現(xiàn)較為方便,將發(fā)射機附在貴重物品上,接收機固定在門口,當貴重物品出入時,即可進行記錄。發(fā)射機與接收機電路結(jié)構(gòu)都較簡單,體積小,攜帶方便。
1.4 系統(tǒng)總體框圖
根據(jù)上述設計思想,系統(tǒng)總體框圖如圖1所示。系統(tǒng)由上位機和下位機兩大部分組成。上位機進行鍵盤輸入、語音提示、報警和人員物品進出情況記錄。下位機進行煙霧檢測、人體紅外檢測、貴重物品檢測、人員進出情況檢測等數(shù)據(jù)采集工作。下位機通過無線收發(fā)模塊將檢測信號送入上位機。上位機進行數(shù)據(jù)處理并作出相應動作。
圖1 系統(tǒng)總體框圖
2 理論分析與計算
2.1 物品檢測電路的計算
采用無線發(fā)射與接收方式進行貴重物品檢測,通信距離與發(fā)射功率、接收靈敏度和工作頻率有關(guān)。選用通信頻率為8MHz,電感為47μH。
2.2 控制方案分析
根據(jù)題目要求,為實現(xiàn)對宿舍安防情況進行異地監(jiān)控,采用一主兩從的方式進行模擬,其中主站可以實現(xiàn)對從站的搜索,實時顯示從站是否在線,并進行信息的接收處理、顯示、記錄與報警,從站進行信息獲取與發(fā)送。主站上可實現(xiàn)對從站信息的實時顯示,并將報警及貴重物品進出信息存儲在主站的FLASH內(nèi),省去了外接存儲芯片,可方便地讀取與顯示。利用人體傳感器并通過對進出宿舍的人員進行計數(shù)來確定宿舍內(nèi)人數(shù),并提示鎖門。采用單片機內(nèi)部時鐘作為時間基準,通過鍵盤進行時間設定,用以記錄報警時間。利用單片機內(nèi)部的語音模塊實現(xiàn)語音報警,直觀實用。這種控制方案充分利用了單片機的片內(nèi)資源,使用外部器件少,簡單實用。
2.3 煙霧探測模塊
采用MQ-2煙霧傳感器,它具有探測范圍廣,靈敏度高,響應恢復快,穩(wěn)定性優(yōu),壽命長等優(yōu)點,配以簡單的驅(qū)動電路即可實現(xiàn)煙霧檢測。煙霧傳感器電路如圖2所示。當未檢測到煙霧信號時,比較器輸出低電平;當傳感器檢測到煙霧信號時,比較器輸出5 V高電平,報警器動作。
圖2 煙霧傳感器結(jié)構(gòu)
2.4 人體紅外探測模塊
采用芯片BISS0001配以熱釋電紅外傳感器KBS-6B和少量外接元器件構(gòu)成被動式紅外人體傳感器。加裝菲涅爾透鏡大大提高了檢測范圍,很好的滿足了人體檢測需求。當有人從熱釋電傳感器通過時,BISS0001的V.口輸出一正向脈沖,報警器動作。電路結(jié)構(gòu)如圖3所示。
圖3 釋熱電紅外傳感器結(jié)構(gòu)
2.5 人員進出檢測設計
采用前后放置的兩個紅外光電開關(guān),通過對開關(guān)順序的檢測確定人員進/出宿舍。當有人出宿舍時控制信號1先置高,然后控制信號2置高,通過對時序的判斷即可得出人員外出的結(jié)論。有人進入時同理。檢測電路如圖4所示。
圖4 人員進出檢測電路圖
2.6 貴重物品檢測設計
為達到貴重物品檢測的要求,將一單調(diào)諧回路諧振放大器至于卡片內(nèi),卡片掛在貴重物品上,卡片向外發(fā)出射頻信號,當其出入宿舍時,與副邊線圈發(fā)生諧振,負載電壓發(fā)生變化,通過對負載的檢測即可記錄人員進出情況。電路如圖5所示。
圖5 貴重物品檢測電路圖
3 程序設計
主站系統(tǒng)加電后進行初始化并要求輸入密碼,密碼輸入正確即可對火災、貴重物品、鍵盤等進行監(jiān)控,并根據(jù)監(jiān)控的情況作出相應的處理。從站加電初始化后即開始對各個傳感器狀態(tài)進行監(jiān)控并進行數(shù)據(jù)發(fā)送。其程序流程如圖6所示。
圖6 主程序流程圖
4 測試數(shù)據(jù)與分析
4.1 測試儀器
測試儀器及型號如表1所示。
4.2 測試方法及測試數(shù)據(jù)
測試方法及測試數(shù)據(jù)如表2、表3所示。
表2的測試數(shù)據(jù)表明,煙霧傳感器性能良好。
表3顯示的測試數(shù)據(jù)符合設計要求。
5 結(jié)語
本系統(tǒng)通過測試較好地實現(xiàn)了設計的各項要求。主要創(chuàng)新是加入了語音報警功能,更加實用;加入從站搜索功能,可以實時顯示各從站的工作狀態(tài);加入無人看守功能,并能在特定時段發(fā)現(xiàn)人員活動后立即發(fā)出報警;加入時鐘功能,可實現(xiàn)時間設定和顯示。
二、基于單片機控制的智能路燈模擬系統(tǒng)
1.實現(xiàn)功能
?。?)支路控制器有時鐘功能,能設定、顯示開關(guān)燈時間,并控制整條支路按時開燈和關(guān)燈。
?。?)支路控制器應能根據(jù)環(huán)境明暗變化,自動開燈和關(guān)燈。
?。?)支路控制器應能根據(jù)交通情況自動調(diào)節(jié)亮燈狀態(tài):當可移動物體M(在物體前端標出定位點,由定位點確定物體位置)由左至右到達S點時,燈1亮;當物體M到達B點時,燈1滅,燈2亮;若物體M由右至左移動時,則亮燈次序與上相反。
(4)支路控制器能分別獨立控制每只路燈的開燈和關(guān)燈時間。
?。?)當路燈出現(xiàn)故障時(燈不亮),支路控制器應發(fā)出聲光報警信號,并顯示有故障路燈的地址編號。
2.方案設計
本設計主要以STC89C52單片機為主體。其中,支路控制器模塊通過單片機來控制單元控制器1和單元控制器2,并完成顯示和聲光報警部分。用光敏傳感器感應自然光的暗亮,將感應結(jié)果送至支路控制器,進而控制LED1和LED2的工作狀態(tài)。單元控制器1模塊控制可移動物體M從S到B再到方向路燈變化過程。如當可移動物體M到達S處時,紅外檢測可移動物體M的位置,并將信號發(fā)送至單元控制器1。在支路控制器允許工作的同時,單元控制器1打開繼電器,由繼電器打開功率可控恒流源,進而實現(xiàn)自動調(diào)節(jié)亮燈狀態(tài)。
圖1 模擬電路控制系統(tǒng)框圖
2.1 恒流源方案論證
采用程控分流實現(xiàn)電源的功率調(diào)節(jié)。由變壓器將220V的交流電轉(zhuǎn)化成直流電,電源通過整流橋到7809芯片得到+9V的電壓從而得到恒流源,再由7805芯片轉(zhuǎn)化成相應的恒流源,所得功率在1W可調(diào)。其優(yōu)點是電路簡易,容易搭建。缺點是性能不可靠,不穩(wěn)定。其構(gòu)圖如下圖2所示。
圖2 恒流源電路圖
2.2 系統(tǒng)軟件設計
本模擬路燈控制系統(tǒng)以支路控制器為主核心,編制軟件程序分別完成時鐘功能,顯示開光燈的時間,控制支路的按時開燈和關(guān)燈。并能根據(jù)環(huán)境明暗變化,自動開燈和關(guān)燈。支路控制器分別能控制每只路燈的開燈和關(guān)燈時間。并能在路燈出現(xiàn)故障時發(fā)出聲光報警。其主流程見圖3。
圖3 主程序流程框圖
框圖中的S10、S11、S12、S13、S14、S15、S16分別是按鍵10、11、12、13、14、15、16(按鍵原理圖可見附錄4)。S10和S11控制模式1,S12控制模式2,S13控制模式3S,14控制模式4;S15控制LED1,S16控制LED2。
3 總結(jié)
本文設計了一個模擬路燈控制系統(tǒng),該控制系統(tǒng)包括1個支路控制器和2個單元控制器。本系統(tǒng)支路控制器和單元控制器均采用STC89S52單片機。
該系統(tǒng)具體完成的功能包括:支路控制器有時鐘功能、能根據(jù)環(huán)境明暗變化自動開燈和關(guān)燈、能根據(jù)交通情況自動調(diào)節(jié)亮燈狀態(tài)、能分別獨立控制路燈的開燈時間和關(guān)燈時間、能進行路燈故障的報警、自制了單元控制器中的LED燈恒流驅(qū)動電源、并可對該恒流電源的輸出功率進行自動或手動調(diào)節(jié)。支路控制器根據(jù)環(huán)境的亮暗程度來決定是否將路將燈開或關(guān);單元控制器會實時檢測路燈的故障情況,如有故障則及時將信息反饋至支路控制器,支路控制器啟動報警;同時單元控制器還可以控制LED恒流源的輸出功率以調(diào)節(jié)路燈的亮暗程度,這一功能可進一步拓展為根據(jù)環(huán)境的亮暗程度來調(diào)節(jié)路燈的亮暗程度,以節(jié)省電源功率。
一種智能化的溫濕度智能控制系統(tǒng)設計#e#
三、一種智能化的溫濕度智能控制系統(tǒng)設計
溫、濕度控制廣泛應用于人們的生產(chǎn)和生活中,對于農(nóng)產(chǎn)品種子來說,對環(huán)境溫度與濕度有著比較嚴格的要求。人們通常使用溫度計、濕度計來測量倉庫的溫度和濕度,通過人工加熱、加濕、通風和降溫等方法來控制倉庫的溫、濕度,這種方法不但控制精度低、實時性差,而且操作人員的勞動強度大。同時溫度與相對濕度的大幅度變化可能導致種子大范圍腐爛或者影響種子的發(fā)芽率,從而帶來極大的經(jīng)濟及財產(chǎn)損失。因此,保持適宜的倉庫溫度、濕度對保證農(nóng)產(chǎn)品種子存儲質(zhì)量十分重要。
目前市場上的各種溫度控制設備大多只能根據(jù)簡單的溫度變化規(guī)律制定控制算法,系統(tǒng)擴展性較差。本系統(tǒng)采集了種子倉庫所在地一年的溫度變化規(guī)律,并使用能適應季節(jié)變化、節(jié)省能源的模糊控制算法, 結(jié)合AT89S51 單片機技術(shù)研制了一種穩(wěn)定性高、成本低的溫、濕度智能控制系統(tǒng),采用上、下位機控制結(jié)構(gòu),實現(xiàn)全方位智能化的倉庫管理控制系統(tǒng)。
1 系統(tǒng)結(jié)構(gòu)及工作原理
該系統(tǒng)采用PC 機作為上位機監(jiān)控單元,AT89S51單片機作為下位機控制器,其外圍設備包括溫度、濕度檢測模塊, 溫、濕度輸出控制模塊,鍵盤輸入模塊、LCD顯示模塊及上下位機通信模塊、報警模塊等。其中外圍設備采用RS 485 串行通信接口方式和上位機實現(xiàn)遠程數(shù)據(jù)交換, 用以實現(xiàn)向用戶發(fā)送信息, 用戶對設備進行操作處理等功能。系統(tǒng)結(jié)構(gòu)如圖1 所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
本系統(tǒng)可以通過鍵盤設定模塊或者上位機下裝模塊進行系統(tǒng)給定值的設置來調(diào)整倉庫溫、濕度控制范圍。溫度、濕度檢測模塊將倉庫內(nèi)的溫、濕度信息傳到單片機, 單片機根據(jù)實際情況發(fā)出控制信號驅(qū)動控制模塊進行相應操作, 同時將當前信息存儲到單片機相應內(nèi)存單元中并上傳數(shù)據(jù)到上位機顯示及保存。當溫度或者濕度超過設定的范圍上下限時, 控制器將會啟動或者停止相應設備來調(diào)整環(huán)境濕度和溫度, 同時將各種調(diào)整信息在LCD 上顯示并發(fā)出報警信號??刂菩畔⑼瑫r在上位機顯示并報警, 建立控制日志保存。另外還可以設計一些通用接口, 為以后設備功能擴展提供方便。
2 系統(tǒng)硬件設計
2. 1 控制器的設計
此系統(tǒng)下位機采用模塊化設計, 由AT 89S51 主控芯片, 溫、濕度檢測模塊, 輸出控制模塊, 鍵盤輸入模塊,LCD 顯示模塊, 上下位機通信模塊等幾部分組成。溫、濕度檢測模塊使用數(shù)字溫度傳感器DS18B20 測量倉庫的溫度, 使用溫、濕度傳感器SHT11 測量濕度。輸出控制模塊的控制信號由單片機控制器提供, 通過光電隔離器傳送信號到繼電器控制各執(zhí)行電機動作來調(diào)節(jié)倉庫的溫、濕度。單片機的P2. 0~ P2. 4 接口分別作為驅(qū)動空調(diào)加熱制冷、循環(huán)風機、排濕窗風門的I/ O 接口。
在I/ O 接口輸出電平為0 時, K1 開關(guān)斷開, 相應執(zhí)行電機不工作; 在I/ O接口輸出電平為1 時, 光電隔離器輸出信號使K1 開關(guān)閉合, 相應執(zhí)行電機工作。鍵盤和通信模塊采用查詢方式實現(xiàn)對控制系統(tǒng)的設置, 從而達到對系統(tǒng)溫、濕度值和其限定范圍的及時調(diào)節(jié)。如果出現(xiàn)異常情況, 設備將立即通過RS 485 將事件傳送給遠程主機, 發(fā)出報警信號。
2. 2 溫度檢測模塊
此系統(tǒng)的溫度檢測模塊根據(jù)倉庫面積的大小可增加多處檢測點, 而數(shù)字溫度傳感器DS18B20就具有支持多點組網(wǎng)的功能, 可將多個DS18B20 并連在惟一的三線上, 實現(xiàn)多點溫度檢測, 其測溫范圍為- 55~+ 125 , 固有測溫分辨率為0. 5 , 工作電源為DC 3~ 5 V, 測量結(jié)果以9~ 12 位數(shù)字量的方式串行傳送。其檢測電路如圖2 所示。
圖2 溫度檢測模塊電路
2. 3 濕度檢測模塊
濕度測量模塊為了節(jié)省控制器I/ O 接口并方便以后的芯片功能擴展, 采用SHT 11 溫、濕度傳感器。
此傳感器是高度集成, 將溫度感測、濕度感測、信號變換、A/ D 轉(zhuǎn)換和加熱器等功能集成到一個芯片上, 提供二線數(shù)字串行接口SCK 和DAT A, 接口簡單, 支持CRC 傳輸校驗, 傳輸可靠性高, 測量精確度高, 由于同時集成溫、濕度傳感器, 可以提供溫度補償?shù)臐穸葴y量值和高質(zhì)量的露點計算功能。SHT 11 可通過DA TA數(shù)據(jù)總線直接輸出數(shù)字量濕度值。該濕度值稱為 相對濕度!, 需要進行線性補償和溫度補償后才能得到較為準確的濕度值。由于相對濕度數(shù)字輸出特性呈一定的非線性, 因此為了補償濕度傳感器的非線性, 可按下式修正濕度值:
式中: RH linear為經(jīng)過線性補償后的濕度值; SORH 為相對濕度測量值; C1 , C2 , C3 為線性補償系數(shù), 取值如表1所列。
表1 濕度線性補償系數(shù)
而實際溫度和測試參考溫度25 有所不同, 所以對線性補償后的濕度值進行溫度補償很有必要。補償公式如下:
式中: RH true為經(jīng)過線性補償和溫度補償后的濕度值; T為測試濕度值時的溫度( 單位: ℃ ) ; t1 和t2 為溫度補償系數(shù), 取值如表2 所示。
表2 濕度值溫度補償系數(shù)
具體濕度檢測模塊電路如圖3 所示。
圖3 濕度檢測模塊電路
2. 4 輸出驅(qū)動控制模塊及報警模塊
輸出驅(qū)動控制模塊通過控制芯片產(chǎn)生電信號, 控制相應的設備運轉(zhuǎn)或者停止, 實現(xiàn)倉庫溫度和濕度的自動調(diào)節(jié)。當檢測到的溫度和濕度值大于或小于設定值時,報警模塊同時會發(fā)生報警信號通知用戶注意當前狀況,必要時需采取相應人工措施。
3 系統(tǒng)軟件設計
由于溫、濕度變化規(guī)律性不強, 被檢測對象的溫、濕度具有非線性、熱慣性、時變性等特點, 較難建立精確的數(shù)學模型。而模糊控制算法不需要建立精確的數(shù)學模型, 可依據(jù)人工實際操作經(jīng)驗, 將其抽象為一系列的控制算法后通過計算機完成控制過程, 具有控制動態(tài)響應好、超調(diào)小、穩(wěn)定性強等特點。
控制器可以自動檢測晝夜、季節(jié)、室內(nèi)環(huán)境溫、濕度值的變化, 利用模糊算法實現(xiàn)自動控制過程。倉庫存儲土豆種子的溫度控制在- 1~ + 3℃ 之間, 相對濕度保持在45%~ 70% 較為適宜。
溫、濕度控制程序中, 溫、濕度各有2 個輸入數(shù)據(jù)和1 個輸出數(shù)據(jù)。e 為溫、濕度偏差;△e 為溫、濕度變化率; u 為輸出控制變量, 其值分別為:
其中: PL 表示負大; PM 表示負中; PS 表示負?。?NS 表示正?。?NM 表示正中; NL 表示正大。然后根據(jù)專家知識和操作人員的經(jīng)驗, 建立模糊控制表。其模糊關(guān)系可以用多個條件語句表示, 例如: IF e= NL and △e=NL then u= SM; 根據(jù)模糊推理進行運算, 即可推出控制結(jié)果。
在主程序中, 主要負責倉庫中溫、濕度的實時顯示,讀取并處理傳感器測量的溫、濕度值, 當實際值與事先設定的溫、濕度上下限值不同時, 發(fā)出控制信號, 驅(qū)動輸出控制單元啟動或停止執(zhí)行控制電機, 同時發(fā)出報警信號, 通知用戶當前發(fā)生的狀況并作相應控制日志記錄。
主程序流程圖和溫、濕度采集處理流程圖分別如圖4,圖5所示。
圖4 主程序流程圖
圖5 溫、濕度采集處理框圖
4 結(jié)語
采用模糊控制算法非常適合大型倉庫中多點溫度和濕度的檢測與控制, 具有可靠性高、成本低廉、能耗低、反應靈敏、以及可擴展性好等特點。該設備具備一定的通用性, 經(jīng)過簡單的改進, 就能服務于國防工業(yè)、農(nóng)業(yè)等生產(chǎn)上的各個方面。
基于AVR單片機的衛(wèi)星地面測控系統(tǒng)設計#e#
四、基于AVR單片機的衛(wèi)星地面測控系統(tǒng)設計
本文介紹了單片機Atmega128在一種衛(wèi)星地面測控系統(tǒng)中的應用,該系統(tǒng)利用Atmega128完成了10路模擬信號的測量、4路脈沖信號的頻率測量以及脈沖寬度的測量,由單片機上的16位定時計數(shù)器輸出兩路與輸入信號具有相位關(guān)系的信號,并通過外擴串口與其它測試模塊及工控機進行通信。由于要求系統(tǒng)能夠連續(xù)穩(wěn)定工作3年,并且數(shù)據(jù)不能丟失,因此,在設計時采用了雙電源冗余熱備份的方案,并且采用兩個工控機同時接收數(shù)據(jù)并互為備份的設計方案。
硬件設計
Atmega128屬于Atmel公司的AVR系列單片機,是一種高性能、低功耗的8位控制器,執(zhí)行大多數(shù)指令只需要一個時鐘周期。其最高主頻可達到16MHz;自帶128KB可在線編程的閃存、4KB的EEPROM、4KB的SRAM,程序可進行加密;自帶JTAG接口,便于程序的調(diào)試;集成外設:兩個8位定時計數(shù)器、兩個16位定時計數(shù)器、兩個8位PWM通道、6個16位PWM通道、8個10位 ADC通道、一個I2C接口、兩個可編程異步串行接口、一個SPI接口、一個看門狗定時器和8個外部中斷源。
衛(wèi)星地面測控系統(tǒng)主要由電源模塊、電子機箱、測試箱、工控機以及紅外地球敏感器構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖1所示。其中兩臺電源并聯(lián), 輸出串聯(lián)二極管。在整個測控系統(tǒng)中,測試箱的控制功能是通過Atmega128完成的。
測試箱的硬件原理如圖2所示。測試系統(tǒng)以AVR單片機為核心,外圍電路由串口通信、ADC采樣和DAC輸出等部分構(gòu)成。
單片機與工控機之間通過RS-232標準總線進行數(shù)據(jù)通信,在設計中采用電平轉(zhuǎn)換芯片MAX202來實現(xiàn)二者的電平兼容。為了能夠和測試系統(tǒng)的其它模塊進行串口通信,采用Xicor公司的雙串口芯片ST16C2552外擴了兩個串口,由于與外擴串口通信的是-12V~+12V的信號,不是標準電平,因此,要另外設計電平轉(zhuǎn)換電路。使用Altera公司的可編程邏輯器件EPM7128實現(xiàn)對DAC和ADC的邏輯控制;使用BB公司的12位ADC實現(xiàn)對遙測信號的測量;采用BB公司的12位DAC芯片DAC7615產(chǎn)生電地球波信號。
具體功能如下:
ADC測量:將輸入的10路模擬信號經(jīng)過阻抗匹配后連接到通道選擇器,再接到ADC芯片ADS7835的信號輸入端,ADC的輸出信號以及控制信號經(jīng)過光隔離接到EPLD邏輯,在邏輯內(nèi)部實現(xiàn)對ADC啟動信號、轉(zhuǎn)換通道的選擇,以及對時鐘信號、數(shù)據(jù)信號的控制。
DAC 輸出:單片機通過邏輯芯片實現(xiàn)對DAC的片選、時鐘、數(shù)據(jù)等信號的控制,DAC的輸出信號通過光隔離后,再經(jīng)過運算放大器進行阻抗匹配后才接到整個測試系統(tǒng)的其它模塊。DAC參考電壓的穩(wěn)定性至關(guān)重要,如果參考電壓穩(wěn)定性差,將導致整個DAC的輸出波動很大,達不到輸出精度要求,因此,通過一個穩(wěn)壓芯片 AD584給DAC提供參考電壓。
頻率測量:電測箱需要對2路基準信號和2路光柵信號進行測量,利用AVR單片機的外部中斷和計數(shù)器1、3實現(xiàn)測量。將2路基準信號分別接到單片機的外中斷INT0和INT1,將光柵信號分別接到單片機的計數(shù)器1和3。在電測箱需要實現(xiàn)的各項功能中,電地球波的輸出是一個難點,因為需要電地球波的輸出與基準信號具有相位關(guān)系,并且要求輸出具有可變相位、幅度和斜率的信號,本文通過計數(shù)器1和3的比較中斷實現(xiàn)電地球波的輸出。
串口通信:通過單片機自帶的兩個異步串口,并經(jīng)過電平轉(zhuǎn)換與上位工控機通信,通過雙串口芯片ST16C2552外擴兩個串口與測試系統(tǒng)的其它模塊通信,此外,為保證系統(tǒng)的可靠性,所有的信號均經(jīng)過光隔離。
軟件實現(xiàn)
單片機軟件
運行在單片機的底層軟件主要負責ADC的采集、DAC的輸出以及串口的通信,下面詳細介紹各個部分:
1、 光柵頻率測量:測量模擬基準一個周期內(nèi)的光柵個數(shù)
在程序中,每次進入外中斷0的處理程序void int0_isr(void)(即基準脈沖上升沿到來時)調(diào)用void do_gd_opt_frq()函數(shù)測量光柵頻率。
在do_gd_opt_frq ()函數(shù)中,先把前一次讀取計數(shù)器1的計數(shù)值保存在全局變量time1_prev中,再讀取計數(shù)器1的值并保存在time1_next中,因為兩次中斷的間隔就是模擬基準的周期,有一個光柵脈沖計數(shù)器1就加1,所以,前后兩次的差值就是一個模擬基準周期內(nèi)光柵的個數(shù)。
2、 模擬基準幅度
在INT0的中斷處理函數(shù)中置一個全局標志refoa_gd_flag = 0xff,在一個100?s的定時器的中斷處理函數(shù)中查詢此全局標志,若置位,則對模擬基準的ADC通道連續(xù)采樣400次,采樣后清 refoa_gd_flag標志并置采樣結(jié)束的標志refoa_gd_finished = 0xff。在主程序main()函數(shù)中不斷查詢refoa_gd_finished標志,若置位,則調(diào)用do_refoa_high()函數(shù)求出模擬基準幅度,然后清標志。在do_refoa_high()函數(shù)中求出采樣400個點中的最大值和最小值,兩者之差即為模擬基準幅度。
3、 模擬基準周期:測量一個模擬基準周期的毫秒值
在一個1ms的定時器溢出中斷處理函數(shù)中,全局的計數(shù)變量ref_gd_count加1,ref_gd_count初始化為0。在外中斷0的處理函數(shù) int0_isr()中讀取ref_gd_count的值,即為模擬基準的周期,再把ref_gd_count清零。這樣,只有第一次測量值是無效的,以后均為有效的模擬基準周期。
4、 模擬基準寬度
在INT0的中斷處理函數(shù)中置全局變量refoa_width_gd_ count=0,在100?s的定時器中斷中查詢外中斷0的引腳是否為高電平,是高電平則refoa_width_gd_count加1,直至變?yōu)榈碗娖?,refoa_width_gd_ count的值就是模擬基準的寬度。
5、 電地球波
在do_ein()函數(shù)中處理工控機串口傳過來的電地球波信息,如果是停止電地球波命令(state=0),通過DA電地球波直接輸出高電平并清除電地球波使能標志位ein_gd_enable。如果是開始電地球波命令(state=1),把相位、寬度、幅值、斜率等信息賦給全局變量保存,并且計算出步距和斜率上各個點的輸出值,置位電地球波使能標志 ein_gd_enable。
電地球波的產(chǎn)生是以模擬基準為基準的,在INT0的中斷處理函數(shù)中設置計數(shù)器的比較中斷并使能。
圖3中, T0與T1 之間是地球波的相位,T2與T5之間是地球波的寬度。在T1時刻進入計數(shù)器1的比較中斷timer1_compa_isr(),全局變量 ein_count_gd初始化為0,若ein_count_gd不等于1,則設置比較中斷寄存器初值為下一步距點,并通過DA輸出,若下一個比較中斷到來ige ein_count_gd不等于1,則繼續(xù)設置比較中斷寄存器初值為下一個步距,并輸出幅值,直到斜率上所有的幅值輸出完畢,置ein_count_gd 等于1并設置比較中斷寄存器,使T4進入比較中斷。T4進入比較中斷,并按照前述方法輸出斜率上所有的幅值,完畢則禁止比較中斷并置 ein_count_gd=0xff。
ADC采集和串口通信比較簡單,這里不再贅述。
軟件編譯與下載
由于單片機程序是采用C語言設計完成的,因此,需要用Image Craft公司的ICCAVR編譯器進行編譯,生成COF文件,再用AVR STUDIO調(diào)試軟件和雙龍公司的AVR JTAG仿真器進行調(diào)試。調(diào)試完成后,利用單片機的JTAG接口寫入內(nèi)部閃存即可。
上位工控機軟件
運行在工控機上的軟件主要負責處理AVR單片機通過串口傳送過來的數(shù)據(jù)并進行超差、報警的檢查,然后把數(shù)據(jù)存儲在ACCESS數(shù)據(jù)庫中,以便查看。該軟件能夠設置電地球波的幅度、寬度、相位,并能自主控制電地球波的產(chǎn)生或停止。
上位工控機軟件采用VC6.0編寫,其中的數(shù)據(jù)庫部分采用ADO技術(shù)。ADO是Microsoft公司為最新和最強大的數(shù)據(jù)訪問范例 OLE DB 而設計的,是一個便于使用的應用程序?qū)咏涌凇DO 最主要的優(yōu)點是易于使用、速度快、內(nèi)存支出少且磁盤遺跡小。
結(jié)語
本文介紹的系統(tǒng)使用了很多Atmega128的外圍資源,并通過Atmega128提供的定時計數(shù)器的比較中斷解決了系統(tǒng)設計中的難題。