新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > C8051F單片機(jī)在遠(yuǎn)端測(cè)控裝置中的應(yīng)用

C8051F單片機(jī)在遠(yuǎn)端測(cè)控裝置中的應(yīng)用

——
作者:南京國(guó)電南瑞科技股份有限公司 柳德志 時(shí)間:2007-12-05 來(lái)源:電子設(shè)計(jì)應(yīng)用 收藏

摘  要:本文介紹了系列單片機(jī)在裝置中的應(yīng)用,給出了整個(gè)系統(tǒng)的結(jié)構(gòu),包括和系統(tǒng)網(wǎng)絡(luò)構(gòu)成,對(duì)一些技術(shù)問(wèn)題也做出了詳盡的說(shuō)明。

關(guān)鍵詞:
;;

    單片機(jī)是完全集成的混合信號(hào)系統(tǒng)芯片(SoC),具有與8051指令集完全兼容的CIP-51內(nèi)核和高速、高性能、高集成度等特點(diǎn)。在本文設(shè)計(jì)的一套裝置中取得了較好的效果。

系統(tǒng)簡(jiǎn)介

    遠(yuǎn)端測(cè)控裝置是一種現(xiàn)場(chǎng)可編程的控制器,它能完成數(shù)據(jù)的采集控制,而通過(guò)遠(yuǎn)程通信的方式(如電臺(tái)、CDMA、撥號(hào)等)將數(shù)據(jù)上傳至中心站或接收中心站的遙控指令。它往往被安裝在比較分散、環(huán)境比較惡劣、無(wú)電源保障(經(jīng)常斷電或使用太陽(yáng)能)且無(wú)人值守的地方,因此它運(yùn)行的可靠性和功耗就顯得尤為重要了。C8051F單片機(jī)的工業(yè)級(jí)工作溫度(-40℃~+84℃)、低電壓、低功耗、自帶看門狗和多復(fù)位源等特點(diǎn)滿足了此系統(tǒng)的要求。

    基于此系統(tǒng)的定位,選用C8051F064做主控部分,C8051F236做從屬部分。系統(tǒng)要求具有輸入/輸出點(diǎn)可靈活配置、多通信端口、可現(xiàn)場(chǎng)修改配置等性能。

    系統(tǒng)結(jié)構(gòu)如圖1所示,系統(tǒng)采用220VAC或24VDC供電,主單元功耗3.3W,每個(gè)從單元功耗2.2W,最多可以擴(kuò)展8個(gè)從單元。


  圖1 系統(tǒng)結(jié)構(gòu)圖

主單元結(jié)構(gòu)

  主單元結(jié)構(gòu)如圖2所示,根據(jù)系統(tǒng)的特點(diǎn)將C8051F064的功能做如下配置:

存儲(chǔ)器

  C8051F064內(nèi)部自帶4352字節(jié)RAM和128字節(jié)的Flash,由于系統(tǒng)對(duì)數(shù)據(jù)的實(shí)時(shí)性要求不高且采用遠(yuǎn)程通信方式,為了降低功耗,往往將大量數(shù)據(jù)緩存,在一定的時(shí)間集中發(fā)送,所以需要比較大的數(shù)據(jù)存儲(chǔ)區(qū),利用外部數(shù)據(jù)和地址總線可以擴(kuò)展32KB的RAM。另外,作為現(xiàn)場(chǎng)可編程設(shè)備,需要設(shè)定大量的參數(shù),而這些參數(shù)都需要掉電保持,所以,除了使用單片機(jī)內(nèi)部的128字節(jié)的非易失RAM之外,還擴(kuò)展了一個(gè)8KB的E2PROM.{{分頁(yè)}}

地址和數(shù)據(jù)總線的利用

    地址和數(shù)據(jù)總線采用復(fù)用的方式,C8051F064支持64KB的外部存儲(chǔ)空間,擴(kuò)展RAM為32KB,所以,剩下地址線A15是空余的,利用A15和其他低位的數(shù)據(jù)線,用與非門就可以構(gòu)成片選信號(hào),用來(lái)選擇總線上的設(shè)備。在總線上還外掛了一個(gè)實(shí)時(shí)時(shí)鐘,用來(lái)作為系統(tǒng)的時(shí)間標(biāo)志,由于此芯片內(nèi)帶有電池保持的RAM,對(duì)于頻繁操作且需要保持的數(shù)據(jù)就可以存在此處,這樣可以避免內(nèi)部非易失RAM和E2PROM的復(fù)雜操作。另外,現(xiàn)場(chǎng)的數(shù)字I/O也可以用總線和片選經(jīng)光電隔離構(gòu)成,這樣可以大量縮減單片機(jī)的引腳。


  圖2 主單元結(jié)構(gòu)圖

串口

    C8051F064內(nèi)部帶有兩個(gè)UART,其中串口0經(jīng)光電隔離轉(zhuǎn)換為RS-485信號(hào),用于跟現(xiàn)場(chǎng)的其他設(shè)備連接,串口1再加上6個(gè)GPIO口經(jīng)電平轉(zhuǎn)換后成為全功能標(biāo)準(zhǔn)的RS-232接口,用于與Modem、電臺(tái)、CDMA等連接。用C8051F064的SPI口經(jīng)MAX3100擴(kuò)展成UART,通過(guò)外部的可選配件,轉(zhuǎn)變成RS-232或RS-485信號(hào)。

模擬量

    C8051F064的模擬量輸入最高不超過(guò)3.6V,所以接入信號(hào)時(shí)要注意其范圍,針對(duì)此系統(tǒng),由于現(xiàn)場(chǎng)信號(hào)大部分是4mA~20mA電流,因此用100Ω的精密電阻,配上2.5V的精密電壓源,可以將模擬量的精度調(diào)整到1‰。另外,啟動(dòng)內(nèi)部ADC0的窗口檢測(cè)功能,可以方便地實(shí)現(xiàn)模擬量的上下限越限報(bào)警功能。

數(shù)字量

    大部分?jǐn)?shù)字量直接掛在總線上,另外,有兩路開(kāi)關(guān)量輸入直接接到單片機(jī)引腳,并在內(nèi)部分配這兩個(gè)引腳為定時(shí)/計(jì)數(shù)器的輸入,這兩路就可以兼做脈沖量了。

單片機(jī)資源分配

    C8051F064的端口功能分配使用交叉開(kāi)關(guān)的方式,而且還帶有優(yōu)先級(jí),這種方式很靈活,但是要求設(shè)計(jì)師在電路設(shè)計(jì)時(shí)就要將內(nèi)部的功能分配就緒,也就是說(shuō)電路板加工完成后就不可以隨意修改交叉開(kāi)關(guān)了。

復(fù)位

    C8051F064除了實(shí)現(xiàn)傳統(tǒng)的RESET信號(hào)復(fù)位外,還有上電、掉電、外部信號(hào)、軟件命令、比較器0、時(shí)鐘丟失檢測(cè)及開(kāi)門狗等復(fù)位功能,共7種復(fù)位方式。單片機(jī)復(fù)位后可以通過(guò)查詢寄存器得知是何原因引起的復(fù)位,這對(duì)數(shù)據(jù)的處理和故障分析都是很有用的。本系統(tǒng)使用的是上電、軟件命令、時(shí)鐘丟失和看門狗,增加軟件命令復(fù)位的原因是:由于這些設(shè)備的安裝地點(diǎn)都是比較偏遠(yuǎn)的,當(dāng)中心站察覺(jué)此設(shè)備異常時(shí),可以將其重新啟動(dòng),以解決一些異常問(wèn)題。{{分頁(yè)}}


  圖3 從模塊結(jié)構(gòu)圖

一些技術(shù)問(wèn)題

數(shù)據(jù)的存儲(chǔ)

    在這個(gè)系統(tǒng)中有多個(gè)可以存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器,如256字節(jié)的內(nèi)部RAM、4KB的內(nèi)部擴(kuò)展RAM、32KB的外擴(kuò)RAM、128字節(jié)的Flash、實(shí)時(shí)時(shí)鐘內(nèi)114字節(jié)的電池保持RAM和外擴(kuò)8KB的E2PROM,這么多的數(shù)據(jù)存儲(chǔ)區(qū),一定要仔細(xì)分配其用途,以便充分發(fā)揮功能和速度。本系統(tǒng)作如下分配:256字節(jié)的內(nèi)部RAM讀寫(xiě)速度最快,而且它是單片機(jī)內(nèi)核所占用的,所以要減少使用,它用在對(duì)速度要求較高且頻繁使用的地方,如中斷內(nèi)的變量等;4KB內(nèi)部擴(kuò)展RAM和32KB外擴(kuò)RAM的地位是等同的,一般用作程序的中間變量;128字節(jié)的Flash是整片修改的,所以修改之前要把所有數(shù)據(jù)讀到緩沖區(qū),將要修改的字節(jié)改掉,再把整片擦除,然后把數(shù)據(jù)寫(xiě)入。雖然寫(xiě)比較麻煩,但是讀取很方便,所以用它存放一些不經(jīng)常改動(dòng)而且需要掉電保持的數(shù)據(jù),如模擬量的修正值等;實(shí)時(shí)時(shí)鐘內(nèi)114字節(jié)的RAM讀寫(xiě)速度較快,而且訪問(wèn)方便,所以用它存放需要掉電保持的中間變量,這樣可以隨意讀寫(xiě);8KB的E2PROM受總線邏輯的限制,讀寫(xiě)較慢,但數(shù)據(jù)區(qū)較大,用來(lái)存放功能的設(shè)定值,在程序初始化的時(shí)候把它讀出并放到中間變量區(qū),以后不對(duì)其操作,修改內(nèi)部數(shù)據(jù)操作不宜在中斷中進(jìn)行,防止延長(zhǎng)中斷時(shí)間。

看門狗

    本文采用的是22.1184MHz晶振,那么看門狗監(jiān)控時(shí)間最長(zhǎng)只有47.4ms,這對(duì)實(shí)時(shí)性要求不高。本文采用中斷喂狗的方式。一般來(lái)說(shuō)單純的中斷喂狗是不可以的,因?yàn)槌绦蛑衅鹱饔玫氖侵餮h(huán),而當(dāng)主循環(huán)進(jìn)入非正常狀態(tài)時(shí),中斷往往還在進(jìn)行,所以用中斷喂狗還需主循環(huán)配合。這里采用的是5ms中斷喂狗,在中斷中用變量a累加,當(dāng)a累加到100時(shí),就不再喂狗;而主循環(huán)內(nèi)不斷將a清0,這樣就可以把看門狗的時(shí)間延長(zhǎng)到500ms。

模擬量濾波

    C8051F064的ADC是逐次逼近型的,雖然速度快至1MSPS,但數(shù)據(jù)的抖動(dòng)特別大,所以在混合系統(tǒng)中應(yīng)用時(shí),外圍一定要加濾波電路,如果在硬件設(shè)計(jì)中沒(méi)有考慮也沒(méi)關(guān)系,可以充分利用它的速度,在內(nèi)部采用軟件濾波的方式。本系統(tǒng)對(duì)模擬量的采集速度要求不高,只求穩(wěn)定和準(zhǔn)確,在內(nèi)部采用了20個(gè)點(diǎn)的中位值平均濾波,然后再用20次平均值算法,這樣,就算外圍沒(méi)有任何濾波措施,也能得到很好的效果。{{分頁(yè)}}

從單元結(jié)構(gòu)

    從單元采用底板加模塊的方式,在底板上布置4個(gè)模塊的位置,這幾個(gè)位置的接口要完全相同,這樣可以靈活配置點(diǎn)數(shù)。按照系統(tǒng)要求,所有的I/O點(diǎn)都要進(jìn)行電氣隔離,就不需要選擇帶ADC和DAC的單片機(jī)了,只需要有足夠的GPIO就可以了,按照這一原則,本系統(tǒng)選用了C8051F236,如圖3所示。從單元保留了主單元設(shè)計(jì)時(shí)的液晶和鍵盤(pán)接口,雖然大部分參數(shù)是在主單元內(nèi)設(shè)置的,但保留這個(gè)接口可以看到模塊的軟件版本號(hào)等信息,如果將來(lái)有參數(shù)設(shè)置的話,也可以通過(guò)這里設(shè)定到單片機(jī)內(nèi)的非易失RAM區(qū)。

    主/從間通信采用Modbus協(xié)議,不需要擴(kuò)展從單元,可以用這個(gè)口與外界的Modbus協(xié)議設(shè)備連接。從單元結(jié)構(gòu)比較簡(jiǎn)單,單片機(jī)只負(fù)責(zé)很少一部分工作,在此從略。

系統(tǒng)組網(wǎng)

    在實(shí)際應(yīng)用中,通常不是使用一個(gè)裝置,而是將多個(gè)裝置連接成一個(gè)有線或無(wú)線網(wǎng)絡(luò),有線網(wǎng)絡(luò)一般采用RS-485結(jié)構(gòu)或撥號(hào)方式,在距離較近的系統(tǒng)中使用,由中心站對(duì)每個(gè)站點(diǎn)進(jìn)行輪巡;無(wú)線網(wǎng)絡(luò)一般采用電臺(tái)和CDMA等,與有線網(wǎng)絡(luò)不同的是,這個(gè)鏈路是要收費(fèi)的,所以通信就不能采用輪巡方式了。在用電臺(tái)通信時(shí),往往是距離較遠(yuǎn),供電較困難,所以應(yīng)采用遇變則報(bào)的方式,對(duì)開(kāi)關(guān)量只要變位就發(fā)送,模擬量超過(guò)預(yù)設(shè)的死區(qū)范圍就發(fā)送,由于電臺(tái)往往采用頻分復(fù)用的方式,所以每個(gè)站都要有自己的時(shí)間片,當(dāng)有數(shù)據(jù)需要發(fā)送時(shí),將數(shù)據(jù)緩存,當(dāng)?shù)竭_(dá)自己的時(shí)間片時(shí),將緩存數(shù)據(jù)發(fā)送,這樣就不會(huì)出現(xiàn)數(shù)據(jù)沖突現(xiàn)象了,也利于降低功耗,這對(duì)于太陽(yáng)能供電的系統(tǒng)是很有利的。單純的遇變則報(bào)是有缺陷的,因?yàn)樵谙到y(tǒng)沒(méi)有變化的時(shí)候,他不發(fā)送數(shù)據(jù),也就不知道是數(shù)據(jù)沒(méi)有變化還是這個(gè)站點(diǎn)有問(wèn)題,所以本系統(tǒng)增加了一個(gè)整點(diǎn)平安報(bào)的功能,就是在每隔固定的時(shí)間斷,如4小時(shí),所有站點(diǎn)都把自身所有數(shù)據(jù)發(fā)送一次,這樣就可以看清問(wèn)題之所在了。在用CDMA通信時(shí),雖然不存在頻分復(fù)用的問(wèn)題,但也要將發(fā)送數(shù)據(jù)分時(shí)發(fā)送,以免在特定的環(huán)境下,大量的數(shù)據(jù)在同一時(shí)間涌入數(shù)據(jù)中心,造成信道堵塞。

系統(tǒng)的測(cè)試與運(yùn)行情況

    系統(tǒng)設(shè)計(jì)完成后,進(jìn)行了嚴(yán)格的測(cè)試,單片機(jī)的運(yùn)行速度達(dá)到了預(yù)期的效果,功耗和整體散熱情況優(yōu)于原有的系統(tǒng)。在電磁兼容實(shí)驗(yàn)室內(nèi)進(jìn)行了快速瞬變、輻射抗擾度、靜電放電和電壓突變等實(shí)驗(yàn),其指標(biāo)優(yōu)于國(guó)家對(duì)此類產(chǎn)品的要求。同時(shí)對(duì)系統(tǒng)進(jìn)行了高溫(60℃)和低溫試驗(yàn)(-20℃)、恒定濕熱、振動(dòng)、碰撞、絕緣強(qiáng)度等測(cè)試,均優(yōu)于國(guó)家標(biāo)準(zhǔn)。在防汛、水網(wǎng)、熱網(wǎng)等多種應(yīng)用中,用這個(gè)系統(tǒng)與CDMA和電臺(tái)等組成無(wú)線網(wǎng)絡(luò),最多達(dá)到60多個(gè)點(diǎn),運(yùn)行穩(wěn)定可靠。在樓宇控制系統(tǒng)中,采用RS-485組成的有線網(wǎng)絡(luò),也取得了很好的效果。

參考文獻(xiàn)

1. [美]Cygnol Integrated Products,Inc.C8051F單片機(jī)應(yīng)用解析.潘琢金,孫德龍,夏秀峰譯,北京:北京航空航天大學(xué)出版社, 2002
2.Silabs.C8051F06X Data Sheet?.http://www.silabs.com.2004
3. 童長(zhǎng)飛。C8051F系列單片機(jī)開(kāi)發(fā)與C語(yǔ)言編程,北京:北京航空航天大學(xué)出版社, 2005



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉