歡迎您光臨本站 登入註冊首頁

概述

   C8051F單片機是完全集成的混合信號系統晶元(SoC),具有與8051指令集完全兼容的CIP-51內核和高速、高性能、高集成度等特點。在本文設計的一套遠端測控裝置……

    C8051F單片機是完全集成的混合信號系統晶元(SoC),具有與8051指令集完全兼容的CIP-51內核和高速、高性能、高集成度等特點。在本文設計的一套遠端測控裝置中取得了較好的效果。

系統簡介
    遠端測控裝置是一種現場可編程的控制器,它能完成數據的採集控制,而通過遠程通信的方式(如電台、CDMA、撥號等)將數據上傳至中心站或接收中心站的遙控指令。它往往被安裝在比較分散、環境比較惡劣、無電源保障(經常斷電或使用太陽能)且無人值守的地方,因此它運行的可靠性和功耗就顯得尤為重要了。C805IF單片機的工業級工作溫度(-40℃~+84℃)、低電壓、低功耗、自帶看門狗和多複位源等特點滿足了此系統的要求。
    基於此系統的定位,選用C8051F064做主控部分,C8051F236做從屬部分。系統要求具有輸入/輸出點可靈活配置、多通信埠、可現場修改配置等性能。
    系統結構如圖1所示,系統採用220VAC或24VDC供電,主單元功耗3.3W ,每個從單元功耗2.2W ,最多可以擴展8個從單元。
 

主單元結構
 
    主單元結構如圖2所示,根據系統的特點將C8051F064的功能做如下配置:
存儲器
    C8051F064內部自帶4352位元組RAM和128位元組的Flash,由於系統對數據的實時性要求不高且採用遠程通信方式,為了降低功耗,往往將大量數據緩存,在一定的時間集中發送,所以需要比較大的數據存儲區,利用外部數據和地址匯流排可以擴展32KB的RAM。另外,作為現場可編程設備,需要設定大量的參數,而這些參數都需要掉電保持,所以,除了使用單片機內部的128位元組的非易失RAM之外,還擴展了一個8KB的E2PROM.地址和數據匯流排的利用
    地址和數據匯流排採用復用的方式,C8051F064支持64KB的外部存儲空間,擴展RAM 為32KB,所以,剩下地址線A15是空餘的,利用A15和其他低位的數據線,用與非門就可以構成片選信號,用來選擇匯流排上的設備。在匯流排上還外掛了一個實時時鐘,用來作為系統的時間標誌,由於此晶元內帶有電池保持的RAM ,對於頻繁操作且需要保持的數據就可以存在此處,這樣可以避免內部非易失RAM 和E2PROM 的複雜操作。另外,現場的數字I/O也可以用匯流排和片選經光電隔離構成,這樣可以大量縮減單片機的引腳。

串口
    C8051F064內部帶有兩個UART,其中串口0經光電隔離轉換為RS-485信號,用於跟現場的其他設備連接,串口1再加上6個GPIO口經電平轉換后成為全功能標準的RS-232介面,用於與Modem、電台、CDMA等連接。用C8051F064的SPI口經MAX3100擴展成UART,通過外部的可選配件,轉變成RS-232或RS-485信號。

模擬量
    C8051F064的模擬量輸入最高不超過3.6V,所以接入信號時要注意其範圍,針對此系統,由於現場信號大部分是4mA~20mA電流,因此用100Ω的精密電阻,配上2.5V的精密電壓源,可以將模擬量的精度調整到1‰。另外,啟動內部ADC0的窗口檢測功能,可以方便地實現模擬量的上下限越限報警功能。

數字量
    大部分數字量直接掛在匯流排上,另外,有兩路開關量輸入直接接到單片機引腳,並在內部分配這兩個引腳為定時/計數器的輸入,這兩路就可以兼做脈衝量了。

單片機資源分配
    C8051F064的埠功能分配使用交叉開關的方式,而且還帶有優先順序,這種方式很靈活,但是要求設計師在電路設計時就要將內部的功能分配就緒,也就是說電路板加工完成後就不可以隨意修改交叉開關了。

複位
    C8051F064除了實現傳統的RESET信號複位外,還有上電、掉電、外部信號、軟體命令、比較器0、時鐘丟失檢測及開門狗等複位功能,共7種複位方式。單片機複位后可以通過查詢寄存器得知是何原因引起的複位,這對數據的處理和故障分析都是很有用的。本系統使用的是上電、軟體命令、時鐘丟失和看門狗,增加軟體命令複位的原因是: 由於這些設備的安裝地點都是比較偏遠的,當中心站察覺此設備異常時,可以將其重新啟動,以解決一些異常問題。

一些技術問題
數據的存儲
    在這個系統中有多個可以存儲數據的存儲器,如256位元組的內部RAM、4KB的內部擴展RAM、32KB的外擴RA M、128位元組的Flash、實時時鐘內114位元組的電池保持RAM和外擴8KB的E2PROM,這麼多的數據存儲區,一定要仔細分配其用途,以便充分發揮功能和速度。本系統作如下分配:256位元組的內部RAM讀寫速度最快,而且它是單片機內核所佔用的,所以要減少使用,它用在對速度要求較高且頻繁使用的地方,如中斷內的變數等;4KB內部擴展RAM 和32KB外擴RAM的地位是等同的,一般用作程序的中間變數;128位元組的Flash是整片修改的,所以修改之前要把所有數據讀到緩衝區,將要修改的位元組改掉,再把整片擦除,然後把數據寫入。雖然寫比較麻煩,但是讀取很方便,所以用它存放一些不經常改動而且需要掉電保持的數據,如模擬量的修正值等;實時時鐘內114位元組的RAM讀寫速度較快,而且訪問方便,所以用它存放需要掉電保持的中間變數,這樣可以隨意讀寫;8KB的E2PROM受匯流排邏輯的限制,讀寫較慢,但數據區較大,用來存放功能的設定值,在程序初始化的時候把它讀出並放到中間變數區,以後不對其操作,修改內部數據操作不宜在中斷中進行,防止延長中斷時間。

看門狗
本文採用的是22.1184MHz晶振,那麼看門狗監控時間最長只有47.4ms,這對實時性要求不高。本文採用中斷喂狗的方式。一般來說單純的中斷喂狗是不可以的,因為程序中起作用的是主循環,而當主循環進入非正常狀態時,中斷往往還在進行,所以用中斷喂狗還需主循環配合。這裡採用的是5ms中斷喂狗,在中斷中用變數a累加,當a累加到100時,就不再喂狗;而主循環內不斷將a清0,這樣就可以把看門狗的時間延長到500ms。

模擬量濾波
    C8051F064的ADC是逐次逼近型的,雖然速度快至1MSPS,但數據的抖動特別大,所以在混合系統中應用時,外圍一定要加濾波電路,如果在硬體設計中沒有考慮也沒關係,可以充分利用它的速度,在內部採用軟體濾波的方式。本系統對模擬量的採集速度要求不高,只求穩定和準確,在內部採用了20個點的中位值平均濾波,然後再用20次平均值演算法,這樣,就算外圍沒有任何濾波措施,也能得到很好的效果。

從單元結構
    從單元採用底板加模塊的方式,在底板上布置4個模塊的位置,這幾個位置的介面要完全相同,這樣可以靈活配置點數。按照系統要求,所有的I/O點都要進行電氣隔離,就不需要選擇帶ADC和DAC的單片機了,只需要有足夠的GPIO就可以了,按照這一原則,本系統選用了C8051F236,如圖3所示。從單元保留了主單元設計時的液晶和鍵盤介面,雖然大部分參數是在主單元內設置的,但保留這個介面可以看到模塊的軟體版本號等信息,如果將來有參數設置的話,也可以通過這裡設定到單片機內的非易失RAM 區。
 
    主/從間通信採用Modbus協議,不需要擴展從單元,可以用這個口與外界的Modbus協議設備連接。從單元結構比較簡單,單片機只負責很少一部分工作,在此從略。

系統組網
    在實際應用中,通常不是使用一個裝置,而是將多個裝置連接成一個有線或無線網路,有線網路一般採用RS-485結構或撥號方式,在距離較近的系統中使用,由中心站對每個站點進行輪巡;無線網路一般採用電台和CDMA等,與有線網路不同的是,這個鏈路是要收費的,所以通信就不能採用輪巡方式了。在用電台通信時,往往是距離較遠,供電較困難,所以應採用遇變則報的方式,對開關量只要變位就發送,模擬量超過預設的死區範圍就發送,由於電台往往採用頻分復用的方式,所以每個站都要有自己的時間片,當有數據需要發送時,將數據緩存,當到達自己的時間片時,將緩存數據發送,這樣就不會出現數據衝突現象了,也利於降低功耗,這對於太陽能供電的系統是很有利的。單純的遇變則報是有缺陷的,因為在系統沒有變化的時候,他不發送數據,也就不知道是數據沒有變化還是這個站點有問題,所以本系統增加了一個整點平安報的功能,就是在每隔固定的時間斷,如4小時,所有站點都把自身所有數據發送一次,這樣就可以看清問題之所在了。在用CDMA通信時,雖然不存在頻分復用的問題,但也要將發送數據分時發送,以免在特定的環境下,大量的數據在同一時間涌人數據中心,造成通道堵塞。

系統的測試與運行情況
系統設計完成後,進行了嚴格的測試,單片機的運行速度達到了預期的效果,功耗和整體散熱情況優於原有的系統。在電磁兼容實驗室內進行了快速瞬變、輻射抗擾度、靜電放電和電壓突變等實驗,其指標優於國家對此類產品的要求。同時對系統進行了高溫(60℃)和低溫試驗(-20℃)、恆定濕熱、振動、碰撞、絕緣強度等測試,均優於國家標準。在防汛、水網、熱網等多種應用中,用這個系統與CDMA和電台等組成無線網路,最多達到60多個點,運行穩定可靠。在樓宇控制系統中,採用RS-485組成的有線網路,也取得了很好的效果。


[admin via 研發互助社區 ] C8051F單片機在遠端測控裝置中的應用已經有2218次圍觀

http://cocdig.com/docs/show-post-42181.html