基于單片機(jī)的電表抄表系統(tǒng)_第1頁
基于單片機(jī)的電表抄表系統(tǒng)_第2頁
基于單片機(jī)的電表抄表系統(tǒng)_第3頁
基于單片機(jī)的電表抄表系統(tǒng)_第4頁
基于單片機(jī)的電表抄表系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于單片機(jī)的電表抄表系統(tǒng)摘要自動抄表是指采用通信和計(jì)算機(jī)網(wǎng)絡(luò)等技術(shù)自動讀取和處理表計(jì)數(shù)據(jù)。開展電能自動抄表技術(shù)是提高用電管理水平的需要,也是網(wǎng)絡(luò)和單片機(jī)技術(shù)迅速開展的必然。采用自動抄表技術(shù),不僅能節(jié)約人力資源,更重要的是可提高抄表的準(zhǔn)確性,減少因估計(jì)或謄寫而造成賬單出錯,使供用電管理部門能及時準(zhǔn)確獲得數(shù)據(jù)信息。本例中介紹的抄表方案可方便移植到煤氣表、水表等各種智能抄表系統(tǒng)。本例抄表系統(tǒng)主要由主站端數(shù)據(jù)采集計(jì)算機(jī)、客戶端基于單片機(jī)的抄表模塊、計(jì)量電表三局部組成。客戶終端單片機(jī)模塊和數(shù)據(jù)采集計(jì)算機(jī)通過RS-485串行通信口連接,實(shí)現(xiàn)數(shù)據(jù)傳輸。本例中被測量的電表為威勝3型電表。本例主要介紹客戶端基于單片機(jī)的電表抄表終端的設(shè)計(jì)和實(shí)現(xiàn)方案在設(shè)計(jì)本例抄表系統(tǒng)時,以上功能均需要滿足,其中主要局部是供電方式設(shè)計(jì)、數(shù)據(jù)掉電保護(hù)。功能設(shè)計(jì)、終端抄表模塊與數(shù)據(jù)采集計(jì)算機(jī)通信協(xié)議設(shè)計(jì)、實(shí)時時鐘功能設(shè)計(jì)。其中終端單片機(jī)抄表模塊主要功能如下:采用三相四線〔3x220/380V〕供電方式,在三相交流電壓斷一相或二相的條件下,交流電源能維持終端正常工作,并且系統(tǒng)具有備用電池供電功能;具有實(shí)時測量用戶用電電量功能;具有掉電數(shù)據(jù)保護(hù)功能,能保存用戶用電電量信息。支持DL/T—645電表通信規(guī)約。終端和數(shù)據(jù)采集計(jì)算機(jī)通過RS-485通信,終端和主站通信具備數(shù)據(jù)完整性認(rèn)證機(jī)制以保。終端具有實(shí)時時鐘功能,并且有對時功能。關(guān)鍵詞:單片機(jī);抄表系統(tǒng);串行通信;目錄摘要AbstractTOC\o"1-3"\u1緒論11.1本課題的研究背景11.2電表抄表系統(tǒng)的國內(nèi)外研究動態(tài)11.3電表抄表系統(tǒng)的目的及意義32系統(tǒng)的總體設(shè)計(jì)32.1系統(tǒng)的組成42.2電表抄表系統(tǒng)的功能說明及論文要求42.3電表抄表的關(guān)鍵問題53系統(tǒng)的電路設(shè)計(jì)63.1單片機(jī)簡介63.2技術(shù)方面具體表達(dá)63.3RS-232和RS-485穿行通信設(shè)計(jì)143.3.1串行通信的作用143.3.2技術(shù)方案153.4通信協(xié)議設(shè)計(jì)153.4.1通信協(xié)議的作用153.4.2技術(shù)方案163.5抄表系統(tǒng)電路圖194軟件的實(shí)現(xiàn)204.1串行通信的根底知識204.1.1串行通信的數(shù)據(jù)傳輸204.1.2串行通信的數(shù)據(jù)轉(zhuǎn)換204.1.3串行通信協(xié)議224.2RS-232和RS-485串行通信設(shè)計(jì)234.3系統(tǒng)通訊方式實(shí)現(xiàn)264.4掉電數(shù)據(jù)保護(hù)的軟件實(shí)現(xiàn)274.5數(shù)傳終端的軟件實(shí)現(xiàn)274.5.1AT指令的調(diào)試264.5.2程序的設(shè)計(jì)275結(jié)論32參考文獻(xiàn)附錄致謝基于單片機(jī)的電表抄表系統(tǒng)1緒論1.1本課題的研究背景目前,我國用戶都是人工抄表。這種方式消耗了大量的人力、物力。因此,國家有關(guān)部門規(guī)定以后將逐步以計(jì)算機(jī)為根底的自動抄表系統(tǒng)取代傳統(tǒng)的人工抄表,即實(shí)現(xiàn)遠(yuǎn)程集中自動抄表。[1]電能表遠(yuǎn)程抄表系統(tǒng)就是利用這種新型的智能化信息管理方式,設(shè)計(jì)為小區(qū)、公寓的智能化管理系統(tǒng)的子系統(tǒng)。但是由于各個廠家生產(chǎn)的電能表的差異性,所以該系統(tǒng)不可能支持目前市場上的所有電能表,目前只支持太原市特普高電子科技生產(chǎn)的“多用戶多功能電能表〞[2]1.2電表抄表系統(tǒng)的國內(nèi)外研究動態(tài)由于電能計(jì)量和管理的需要以及電子技術(shù)的開展,使電子式電度表在20世紀(jì)70年代就已出現(xiàn)。隨著數(shù)字電子技術(shù)的飛速進(jìn)步,電子式電度表的功能逐漸增多并日臻完善。電子式電度表一般由電能測量機(jī)構(gòu)和數(shù)據(jù)處理機(jī)構(gòu)兩局部組成,根據(jù)電能測量機(jī)構(gòu)的不同,又分為機(jī)電脈沖式電度表和全電子式電度表兩大類。機(jī)電脈沖式電度表沿用感應(yīng)系電度表的測量機(jī)構(gòu),其數(shù)據(jù)處理機(jī)構(gòu)那么由電子電路和計(jì)算機(jī)控制系統(tǒng)實(shí)現(xiàn),因而,機(jī)電脈沖式電度表是一種電子線路與機(jī)電轉(zhuǎn)換單元相結(jié)合的半電子式電度表全電子式電度表是由又被稱為“靜止式電度表〞或“固態(tài)電度表〞。近年來,各種新型電子式電度表不斷推出,型號各異乘法器完成對電功率的測量。由于它沒有傳統(tǒng)電度表上的旋轉(zhuǎn)機(jī)構(gòu),因而功能眾多,但其根本原理相需量計(jì)量和預(yù)付費(fèi)等;保護(hù)功能,包括過電流、過電壓保護(hù)與防竊電等;通信功能,可以是紅外通同,主要功能可歸為三個方面:計(jì)量、計(jì)費(fèi)功能,包括分時計(jì)量、最大需量計(jì)量和預(yù)付費(fèi)等;保護(hù)功能,包括過電流、過電壓保護(hù)與防竊電等;通信功能,可以是紅外通信、無線電通信或載波通信等。常見的自動抄表通信方式:〔1〕按信道介質(zhì)分,常見的自動抄表通信有載波通信,線通信和無線三種方式。a、光纖通信具有頻帶寬、傳輸速率高、傳輸距離遠(yuǎn)和抗干擾能力強(qiáng)等特點(diǎn),非常適合上層通信網(wǎng)的要求。隨著光纖技術(shù)的開展和廣泛應(yīng)用,自動抄表系統(tǒng)中將更多地使用光纖。b、由于在城鎮(zhèn)的迅速普及,利用現(xiàn)有網(wǎng)進(jìn)行數(shù)據(jù)通信是一個經(jīng)濟(jì)有效的方案。利用網(wǎng)通信,只需在數(shù)據(jù)集中器和工作主站處加裝調(diào)制解調(diào)器即可,其傳輸速率可達(dá)56Kbps。但線通信的線路接通時間較長,一般要幾秒到十幾秒。而且,我國的局部鄉(xiāng)村、小城鎮(zhèn)還沒普及c、對于分布分散的集中器,利用無線方式進(jìn)行數(shù)據(jù)通信是一種較好的選擇。目前我國已有車載無線通信自動抄表系統(tǒng)投入運(yùn)行。但無線通信方式需要慎重選擇頻點(diǎn),并需申請頻點(diǎn)使用權(quán)。[3]〔2〕假設(shè)按連接方式分,那么自動抄表系統(tǒng)的通信方式主要有星型和總線型連接方式。a、星型連接通信是以工作主站為中心,以星型發(fā)散的形式分別通過通信信道與分散于各地的集中器連接,形成1對N的連接形式。這種方式下信道通信數(shù)據(jù)量大,要求有一定的傳輸速率和頻寬。b、總線型通信以一條串行總線連接各分散的采集器或電度表,實(shí)行各節(jié)點(diǎn)的互連。這種方式下信道上節(jié)點(diǎn)多,傳輸速率也不會很高,一般用于底層的電能數(shù)據(jù)的采集。常見的有RS-485總線網(wǎng)和低壓電力線載波通信網(wǎng)。由于電力線完全由電力部門控制,如果用電力線實(shí)施載波通信,不需要再投資鋪設(shè)通信線路,不僅可大大節(jié)約資金投入,且還具有維護(hù)量小的特點(diǎn);而且,用低壓電力線作通信信道可以實(shí)現(xiàn)靈活的“即插即用〞。尤其是近年來擴(kuò)頻通信技術(shù)的成功應(yīng)用,使得低壓電力線載波通信越來越多地用于自動抄表系統(tǒng)。利用低壓電力線作為自動抄表系統(tǒng)的底層數(shù)據(jù)通道,具有本錢低、方便準(zhǔn)確的特點(diǎn)通信方式的選擇是設(shè)計(jì)自動抄表系統(tǒng)的首要任務(wù),它直接關(guān)系到系統(tǒng)的性能。具體確定通信方式時需要綜合考慮系統(tǒng)面對的對象、用戶的分布、用戶的數(shù)量、地理?xiàng)l件、期望到達(dá)的目標(biāo)、系統(tǒng)的擴(kuò)展升級以及與其他網(wǎng)絡(luò)的兼容等。目前許多國家和地區(qū)都廣泛應(yīng)用自動抄表系統(tǒng)代替人工抄表系統(tǒng)主要集中在煤氣表,電量表和流量表的自動抄表,特別是煤氣抄表已經(jīng)有幾十年的開展歷史。抄表技術(shù)的快速開展得益于80年代計(jì)算機(jī)技術(shù),超大規(guī)模集成電路和通訊技術(shù)高速開展,使得抄表系統(tǒng)在向著智能化,低功耗,低本錢和通信標(biāo)注化設(shè)計(jì)的過程邁出了堅(jiān)實(shí)的一步到達(dá)了可以大規(guī)模推廣的使用性階段。我國國內(nèi)所采集的抄表方式大致可分為三種:一是傳統(tǒng)的人工抄表方式,抄表人需到用戶讀取數(shù)據(jù),返回總局后將數(shù)據(jù)重新輸入電腦進(jìn)行處理;二是預(yù)付費(fèi)方式,抄表人無需到用戶處,用戶通過銀行劃撥收費(fèi)活到儀表管理部門購置磁卡,ic卡等,按購置額提供用量,完成收費(fèi)工作;三是遠(yuǎn)程抄表方式,監(jiān)控中心通過遠(yuǎn)程通信系統(tǒng)自動獲取遠(yuǎn)程儀表數(shù)據(jù)的方式。當(dāng)前在我國國內(nèi)大量使用的是預(yù)付費(fèi)方式。局部地區(qū)已經(jīng)開始了遠(yuǎn)程抄表的試點(diǎn),遠(yuǎn)程抄表優(yōu)勢更大,在將來會得到更廣泛的應(yīng)用,技術(shù)上也開展飛速,現(xiàn)在介紹的就是一種遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。1.3電表抄表系統(tǒng)的目的及意義水、電和燃?xì)馐巧钪斜夭豢缮俚?,它們的開展一直倍受人們的關(guān)注。在人們關(guān)注的同時,三表抄送系統(tǒng)產(chǎn)生了,并且,隨著科技的不斷開展,三表抄送系統(tǒng)也越來越智能化。同時,隨著人們的生活水平不斷提高,老百姓對生活環(huán)境提出了更高的要求。在政府政策的鼓舞下,家居智能化得到了高速的開展。隨著科技的開展,小區(qū)住宅除了滿足人們最根本的居住要求,還要將方便、省時的物業(yè)管理帶給住戶。實(shí)現(xiàn)住宅的三表〔水、電、煤氣〕自動抄表、自動計(jì)費(fèi),已成為新型智能小區(qū)的必備條件。作為智能化產(chǎn)業(yè)鏈中的一環(huán)——智能抄表系統(tǒng)也同時得到了蓬勃開展。從沿海的經(jīng)濟(jì)興旺地區(qū)深圳、廣州、上海到政治文化中心北京,以及中國西部城市成都、重慶、貴州、昆明等地均不同程度地建設(shè)了智能化示范小區(qū)。這些智能化住宅小區(qū)的建設(shè),提高了住戶的生活質(zhì)量,擴(kuò)大了住戶的居住空間,為當(dāng)?shù)刂悄芑ㄔO(shè)起到了示范作用。讓我們回頭看看,幾年前甚至是在現(xiàn)在,很多落后的地區(qū)對三表抄送這一塊還是用最原始的方法,“親自登門拜訪〞這就是傳統(tǒng)的抄表方式。傳統(tǒng)的三表需要抄表人員定期挨家挨戶抄取數(shù)據(jù),結(jié)算出費(fèi)用后,再到各家索取,誤差大、統(tǒng)計(jì)工作量大,人為的錯誤給物業(yè)管理和用戶帶來極大不便。現(xiàn)在有許多地區(qū)改為插卡式買電裝置,這雖然減少了人為因素,但是買電時要到銀行,費(fèi)時費(fèi)力,且水、電、氣表分別交費(fèi),也有許多不便之處。小區(qū)智能抄表系統(tǒng)節(jié)省時間、人力、物力、提高工作效率,降低物業(yè)本錢,準(zhǔn)確及時地將住戶所使用的三表數(shù)據(jù)顯示出來,為實(shí)現(xiàn)小區(qū)科學(xué)、系統(tǒng)的物業(yè)管理提供了有效的解決方法。小區(qū)智能抄表系統(tǒng)的出現(xiàn),方便了住戶,可設(shè)置多級加密功能,定義訪問權(quán)限,更可增加系統(tǒng)的保密性。防泄漏報(bào)警可以使住戶放心,不必因家中只有老人、孩子而擔(dān)憂煤氣的泄漏與觸電現(xiàn)象的發(fā)生。一方面杜絕了抄表擾民的問題;另一方面可以簡化管理手段,減輕制物業(yè)管理負(fù)擔(dān)。因此三表出戶系統(tǒng)是新一代的具有城市性自動化計(jì)量收費(fèi)管理系統(tǒng),是提高住宅開展的必然,符合人們高品質(zhì)生活的追求,符合國家小康型住宅產(chǎn)業(yè)的精神。2系統(tǒng)的總體設(shè)計(jì)2.1系統(tǒng)硬件的組成基于單片機(jī)的電表抄表模塊設(shè)計(jì)在設(shè)計(jì)時需要解決下面五方面的問題:一是供電方式的硬件電路設(shè)計(jì);二是掉電數(shù)據(jù)保護(hù)功能的設(shè)計(jì);三是RS-232、RS-485串行通信設(shè)計(jì);四是通信協(xié)議設(shè)計(jì);五是實(shí)時時鐘功能設(shè)計(jì)。本例中,和這五個方面相關(guān)的關(guān)鍵技術(shù)包括?!?〕供電方式設(shè)計(jì)——如何在三相四線〔3x220/380V〕供電方式,三相交流電壓斷一相或者二相的條件下,能夠提供應(yīng)單片機(jī)穩(wěn)定的+5V電源。如何設(shè)計(jì)備用電池供電。本例中將給出可行的硬件電路設(shè)計(jì)并作詳細(xì)的說明,這是本系統(tǒng)能夠正常運(yùn)行的關(guān)鍵。[4]〔2〕掉電數(shù)據(jù)保護(hù)功能——設(shè)計(jì)系統(tǒng)擴(kuò)展E2PROM芯片AT24C04的硬件接口電路和單片機(jī)口模擬IIC總線讀寫AT24C04的驅(qū)動程序,以實(shí)現(xiàn)掉電數(shù)據(jù)保護(hù)功能。〔3〕RS-232、RS-485串行通信設(shè)計(jì)——系統(tǒng)使用具有兩個串口的單片機(jī)w77e58,串口1為RS-232接口實(shí)現(xiàn)與電表的通信,串口2為RS-485接口實(shí)現(xiàn)與數(shù)據(jù)采集計(jì)算機(jī)的通信。本例中將詳細(xì)介紹串口通信的硬件電路設(shè)計(jì)和軟件編程要點(diǎn)。〔4〕通信協(xié)議設(shè)計(jì)——介紹本例中使用的通信協(xié)議格式及檢驗(yàn)數(shù)據(jù)傳輸正確性的CRC〔循環(huán)冗余校驗(yàn)〕算法?!?〕實(shí)時時鐘功能——主要介紹實(shí)時時鐘芯片DS12887和單片機(jī)的硬件連接和軟件驅(qū)動編程.2.2系統(tǒng)軟件組成該系統(tǒng)使用VisualC++6.0為開發(fā)工具。VisualC++是Microsoft公司開發(fā)的面向?qū)ο蟮目梢暬浖_發(fā)系統(tǒng),它基于Windows95/98/NT/2000/XP,采用高度結(jié)構(gòu)化的C++語言,具有結(jié)構(gòu)清晰、高效優(yōu)化等特點(diǎn)。VisualC++6.0軟件包包含了許多單獨(dú)的組件,如編輯器、編譯器、鏈接器、生成實(shí)用程序、調(diào)試器以及各種各樣為開發(fā)MicrosoftWindows下的C/C++程序而設(shè)計(jì)的工具。更令我們興奮的是,它還包含有一個名為DeveloperStudio的開發(fā)環(huán)境,DeveloperStudio的特點(diǎn)是:把所有的VisualC++工具結(jié)合在一起,集成為一個整體,通過一個由窗口、對話框、菜單、工具欄、快捷鍵及宏組成的和諧系統(tǒng),你可以觀察和控制整個開發(fā)進(jìn)程。集成開發(fā)環(huán)境就像一間帶有監(jiān)視器、刻度盤和操縱桿〔它使個人能操作工廠中的許多機(jī)器〕的控制室。該環(huán)境幾乎就是VisualC++中所能“看見〞的所有東西。所有其他事情都在其管理下在幕后運(yùn)行。在VisualC++6.0中包含的Win32軟件開發(fā)工具包(SoftwareDevelopmentKit,即通常所說的SDK)中的結(jié)構(gòu)、功能,它為編程者提供了一個應(yīng)用程序框架,這個應(yīng)用程序框架為編程者完成了很多Windows編程中的例行性工作,如管理窗口、菜單和對話框,執(zhí)行根本的輸入和輸出、使用集合類來保存數(shù)據(jù)對象等等,并且,MFC使得在程序中使用很多過去很專業(yè)、很復(fù)雜的編程課題,如ActiveX、OLE、本地?cái)?shù)據(jù)庫和開放式(OpenDa-tabaseConn-ectivity,簡寫為ODBC)、Windows套接字和Internet應(yīng)用程序設(shè)計(jì)等,以及其他的應(yīng)用程序界面特性,如屬性頁(也叫標(biāo)簽對話框)、打印和打印預(yù)覽、浮動的和可定制的工具條變得更加的容易。2.2電表抄表系統(tǒng)的功能說明及論文要求隨著人們生活水平的提高,科學(xué)技術(shù)的開展,現(xiàn)代城市居民住區(qū)只能化樓宇管理系統(tǒng)成為了一個熱門的話題在目前的技術(shù)下,可以相對較好地實(shí)現(xiàn)只能化樓宇管理系統(tǒng)的要求,無人抄表系統(tǒng)需要具備以下功能。電力線通信的獨(dú)特之處在于它可適應(yīng)任何新的根底設(shè)施?!?〕實(shí)時查詢。用戶可實(shí)時查詢起冷熱水表、電表和煤氣表的讀數(shù),應(yīng)交納各項(xiàng)費(fèi)用金額和上次統(tǒng)計(jì)數(shù)據(jù)以及各種條目的事實(shí)查詢、打印。〔2〕歷史查詢。可提供每戶各種不同條目下歷史數(shù)據(jù)的查詢和打印,包括自動收費(fèi)信息、人事信息的查詢和打印?!?〕自動收費(fèi)。包括各項(xiàng)財(cái)務(wù)參數(shù),收費(fèi)方式,收費(fèi)周期等的設(shè)置,水。電,燃?xì)饬拷y(tǒng)計(jì),按廠商設(shè)置周期自動統(tǒng)計(jì)客戶不同表使用量,并按起設(shè)置的財(cái)務(wù)參數(shù),收費(fèi)方式及不同表的讀數(shù),自動計(jì)算客戶應(yīng)交納的費(fèi)用,實(shí)現(xiàn)收費(fèi)單的打印?!?〕人事管理。實(shí)現(xiàn)居民區(qū)住戶信息的增、減幾瀏覽。在為試點(diǎn)居民小區(qū)遠(yuǎn)程抄表系統(tǒng)做的總體技術(shù)方案設(shè)計(jì)時,本文遵循三條根本原那么:〔1〕在試點(diǎn)小區(qū)的配電變壓器和小區(qū)住戶之間不鋪設(shè)任何專用有線信道,數(shù)據(jù)的上行或下行傳送必須使用現(xiàn)成的低壓電力線作為數(shù)據(jù)媒介。〔2〕只在配電變壓器和住戶地點(diǎn)對應(yīng)安裝數(shù)據(jù)的收發(fā)裝置,建立起各用戶電能表終端與配變集中器的直接數(shù)據(jù)鏈路,中間不安裝任何硬件上的中繼或第二級集中轉(zhuǎn)發(fā)裝置?!?〕用戶電能表終端除了記錄電量外,它還應(yīng)該執(zhí)行就地保護(hù)和遠(yuǎn)方監(jiān)控功能。本系統(tǒng)的任務(wù)在于實(shí)現(xiàn)低壓用戶電量數(shù)據(jù)的遠(yuǎn)程傳輸和抄算,對低壓電力用戶的負(fù)荷和用電進(jìn)行遠(yuǎn)程監(jiān)測。2.3搞好自抄系統(tǒng)設(shè)計(jì)的關(guān)鍵問題由于現(xiàn)代電子技術(shù)、通信技術(shù)的飛速開展和電力市場營銷管理的不斷需求,電能表自動抄表系統(tǒng)的技術(shù)研究、產(chǎn)品開發(fā)、系統(tǒng)設(shè)計(jì)和試點(diǎn)運(yùn)行工作日益引起電力營銷管理部門、電能表制造企業(yè)及相關(guān)行業(yè)的關(guān)注和投人,因此,雖然我國對自動抄表的研究起步較晚,但開展較快。目前,車載無線電抄表、電力線載波抄表、近地集中抄表和遠(yuǎn)程控制抄表等各種形式的自動抄表系統(tǒng)已分別在我國各地有試點(diǎn)運(yùn)行。配電網(wǎng)自抄系統(tǒng)設(shè)計(jì),必須解決好以下三個關(guān)鍵問題:傳輸通道及鏈路的選定;信號、數(shù)據(jù)的處理和檢測;自抄系統(tǒng)管理網(wǎng)絡(luò)的建立。第一,傳輸通道及鏈路的選定:傳輸通道及鏈路的選擇直接關(guān)系到信號、數(shù)據(jù)傳輸?shù)目煽啃院凸こ虒?shí)施的可行性。通過對國內(nèi)外有關(guān)文獻(xiàn)資料比擬分析和試用效果的驗(yàn)證,加之對我國配電網(wǎng)現(xiàn)狀、特性的研究分析之后,我們認(rèn)為,采用配電線作為變電所與其用戶之間的數(shù)據(jù)傳輸通道、光纜作為供電公司計(jì)算機(jī)與變電所計(jì)算機(jī)聯(lián)網(wǎng)的鏈路,這是一種既經(jīng)濟(jì)又實(shí)用的最正確選擇。第二,信號、數(shù)據(jù)的處理和檢測:大家知道,任何一種傳輸通道及鏈路都不可防止的存在著不同程度的干擾。能否依據(jù)所選定的傳輸通道及鏈路的特征,對其信號、數(shù)據(jù)采取相應(yīng)的包裝方式和檢測方法,將會直接影響到自抄系統(tǒng)的成敗。根據(jù)我們對國內(nèi)外有關(guān)電力線載波通訊技術(shù)進(jìn)展的研究和試點(diǎn)運(yùn)行效果的綜合分析,可以說,我國在理論和實(shí)踐上,已經(jīng)研制成能夠適應(yīng)我國配電網(wǎng)特點(diǎn)的電力載波微弱信號的包裝方式和檢測方法,并取得比擬令人滿意的效果。第三,自抄系統(tǒng)管理網(wǎng)絡(luò)的建立:自抄系統(tǒng)管理網(wǎng)絡(luò)的建立是實(shí)現(xiàn)自抄系統(tǒng)的前提,選定一種符合實(shí)際、簡便可靠的管理網(wǎng)絡(luò)是自抄系統(tǒng)正常工作運(yùn)行的保障。依據(jù)我國電力市場營銷管理特點(diǎn)和所采用的配電線傳輸信道及光纜鏈路,我們擬定出了配電網(wǎng)自抄系統(tǒng)管理網(wǎng)絡(luò)框圖。實(shí)現(xiàn)自動抄表,能提高住宅檔次和物業(yè)管理水平。[5]物業(yè)管理公司或?qū)I(yè)公司可節(jié)省大量的人力、物力、財(cái)力,提高工作效率、提高抄表的準(zhǔn)確性,同時系統(tǒng)施工方便、操作簡單,由于電表自動抄表系統(tǒng)具有良好的經(jīng)濟(jì)效益和社會效益,因此它具有廣闊的開展前景。3系統(tǒng)的電路設(shè)計(jì)3.1單片機(jī)簡介由于本模塊的使用現(xiàn)場環(huán)境相對特殊,故對于電源的設(shè)計(jì)充分考慮到了系統(tǒng)供電的穩(wěn)定性和可靠性。本模塊采用三相工業(yè)用電作為電源輸入,首先通過防雷抗干擾電路,接著通過220-9V/18V變壓器降壓,再接著通過橋式整流電路得到18V左右直流電壓,再通過一系列隔離濾波進(jìn)入直流轉(zhuǎn)換穩(wěn)壓器件LM2575得到系統(tǒng)的5V工作電壓。另外,考慮到現(xiàn)場存在停電的可能性,我們還專門設(shè)計(jì)了系統(tǒng)的備用電源。備用電源采用比擬廉價的鋰離子電池,當(dāng)系統(tǒng)正常供電時,鋰離子電池處于充電狀態(tài),對于充電的管理我們選用了比擬常用的電源充電管理芯片MAX713管理備用電池的充電。當(dāng)現(xiàn)場停電時,自動轉(zhuǎn)為備用電池給系統(tǒng)供電。[6]77E58與標(biāo)準(zhǔn)8051相兼容的全新核心的微處理器。由于去掉了多余的存儲器周期和運(yùn)算周期,它在相同周期里執(zhí)行8051的指令比最初的8051快得多。典型的指令周期77E58比8051快1.5到3倍。電源消耗也做了改良采用靜態(tài)COMS設(shè)計(jì)??梢怨ぷ饔谳^低的時鐘頻率下。32K的EEPROM程序段和1K的外部SRAM可以省去外部的擴(kuò)展存儲器。并可以為使用者保存更多的引腳。32KRom,,1K

Ram,4個振蕩為1個機(jī)器周期,40MHZ,1個擴(kuò)展4BIT

I/O〔44腳〕,12個中斷源,2個增強(qiáng)型串口,256字節(jié)RAM,1KSRAM〔用MOVX存取〕000H3ffH,內(nèi)置看門狗,雙16位數(shù)據(jù)指針

DPH1

DPL1,軟件可編程存取RAM周期等.W77e58單片機(jī)的特點(diǎn):(1)8位處理器(2)最高40M時鐘,4機(jī)器周期的指令執(zhí)行速度(3)與標(biāo)準(zhǔn)8051兼容的管腳。(4)與8051兼容的指令(5)4個8位I/O口(6)擴(kuò)展的4位I/O和等待信號線〔44腳的PLCC或QFP封裝提供〕。(7)三個16位計(jì)數(shù)/時器(8)12級中斷(9)片上時鐘源(10)兩個增強(qiáng)的雙工竄口(11)1K的片上外部存儲器(12)可編程看門狗(13)兩個全速16位數(shù)據(jù)指針DPTR(14)外部數(shù)據(jù)訪問周期可編程(15)封裝[7]技術(shù)方案及具體實(shí)現(xiàn)以下介紹配電變壓器集中器和用戶電能表終端分別與配電變壓器、用戶一一對應(yīng)并就地分布式安裝。用電管理信息只能在系統(tǒng)的上下級之間傳輸。由于使用了分布式安裝結(jié)構(gòu),在系統(tǒng)建設(shè)上與集中抄表箱用電系統(tǒng)相比,無須龐大繁瑣的纜線工程,施工難度將會大幅下降。系統(tǒng)的擴(kuò)展將隨用戶或配變數(shù)量的遞增而模數(shù)化擴(kuò)展,就象增加一個用戶增加一塊電能表那樣簡單。因此,系統(tǒng)擴(kuò)展極具伸縮性,不會象集中式系統(tǒng)那樣新建時資源閑置,用戶開展時容量又不夠。應(yīng)該說,這個系統(tǒng)比擬符合營業(yè)用電管理系統(tǒng)開展的主流方向。其中用電管理主機(jī)到配電變壓器集中器的信息傳輸媒介采用擴(kuò)頻無線信道或公共網(wǎng)〔第一級信道〕,配電變壓器集中器到用戶電能表終端的信息傳輸媒介利用低壓電力線載波信道〔第二級信道〕。顯然,整個系統(tǒng)與配電變壓器下面的電壓電力網(wǎng)一樣呈樹形分布結(jié)構(gòu),可隨用戶開展和負(fù)荷增長任意擴(kuò)展。系統(tǒng)在正常運(yùn)行時采用三相四線外部工業(yè)電源供電方式,三相交流電壓斷一相或者二相的條件下,能夠提供應(yīng)單片機(jī)穩(wěn)定的+5V電源。我們使用三相橋式整流電路來給系統(tǒng)提供+5V電壓,具體實(shí)現(xiàn)電路如圖3-1所示。圖3-1三相橋式整流電路圖系統(tǒng)在由外部電源正常供電的同時給備用鋰電池充電,充電電路設(shè)計(jì)如圖3-2所示。圖3-2備用電池充電電路備用電池充電電路功能主要由MAX713完。MAX713系列是MAXIM公司生產(chǎn)的快速充電管理芯片,它可通過簡單的管腳電壓配置進(jìn)行編程,實(shí)現(xiàn)對充電電池支數(shù)和最大充電時間的控制。芯片封裝如圖3-3所示。MAX713的引腳功能描述如下:圖3-3MAXIM封裝圖〔1〕VLIMIT:設(shè)置單節(jié)電池的最大電壓,電池組〔BATT+—BATT-〕的最大電壓Em不能超過VLIMIT×〔電池?cái)?shù)量n〕,且VLIMIT不能超過2.5V,當(dāng)VLINIT接V+時,Em=1.65n〔V〕,通常將VLIMIT與VREF連接〔2〕BATT+:電池組正極?!?〕PGM0:可編程引腳?!?〕PGM1:可編程引腳。通過對PGM0和PGM1腳電壓的設(shè)定可設(shè)置充電電池的數(shù)量,從1~16。〔5〕THI:溫度比擬器的上限電壓。當(dāng)TEMP電壓大上升到THI時,快速充電結(jié)束?!?〕TLO:溫度比擬器的下限電壓。充電初始,當(dāng)TEMP電壓低于TLO時快速充電被禁止,直到TEMP電壓高于TLO?!?〕TEMP:溫度傳感器輸入?!?〕FASTCHG:快速充電狀態(tài)輸出?!?〕PGM2:可編程引腳。通過對PGM2和PGM3腳電壓的設(shè)定可設(shè)置快速充電的最大允許時間,從33min~264min?!?0〕PGM3:可編程引腳。除設(shè)定最大允許時間外,還可設(shè)定快速充電和涓流充電的速率?!?1〕CC:恒流補(bǔ)償輸入?!?2〕BATT-:電池組負(fù)極?!?3〕GND:系統(tǒng)地?!?4〕DRV:驅(qū)動外圍“PNP〞?!?5〕V+:分路調(diào)節(jié)器。V+對BATT-電壓為+5V,為芯片提供分路電流〔5~20mA〕?!?6〕REF:參考電壓輸出2V。在應(yīng)用中MAX713提供可編程引腳PGM0和PGM1,通過對兩者采取不同的電壓連接方式即可設(shè)置充電電池?cái)?shù)量。而實(shí)際充電電池的數(shù)量也必須與由PGM0和PGM1編程確定的數(shù)量一致,否那么利用電壓梯度檢測充電功能將可能失去意義。通過對PGM2和PGM3引腳的編程電壓設(shè)置可設(shè)定電池的充電速率和充電時間。從表1中可以看出,對于MAX713來說,最大允許快速充電時間為264分鐘,因此其最小充電速率將不能低于C/4。[8]\而涓流充電電流ITRICKLET一般為C/16。此外,鑒于電池本身的固有特性〔將電能轉(zhuǎn)化為化學(xué)能存儲〕,充電時間效率通常在80%左右,即當(dāng)以C/2速率充電時,理論上充滿電所需時間為2小時,而實(shí)際時間通常為2小時30分鐘左右。電池?cái)?shù)量的設(shè)定如表3-1所示電池?cái)?shù)量PGM1連接方式PAM2連接方式1V+V+23OpenV+REFV+4BATT-V+5V+Open67OpenOpenREFOpen8BATT-Open9V+REF10OpenREF11REFREF12BATT-REF13V+REF141516OpenREFBATT-REFBATT-BATT-表3-1MAX713引腳功能電壓梯度充電原理圖如圖3-4所示。圖3-4利用電壓斜率充電圖3-4反映了利用電壓梯度控制快速充電的全過程。在時間段1內(nèi),MAX713從電池吸收很小的電流〔5mA左右〕,當(dāng)接通充電電源后,開始對電池以C/16的速率進(jìn)行涓流充電,電池電壓開始上升〔時間段2〕。當(dāng)單節(jié)電池電壓上升到0.4V以后,快速充電正式開始〔時間段3〕,電池電壓和電池溫度持續(xù)上升,充電電流保持在設(shè)定值不變。當(dāng)電池電量到達(dá)額定值后,電池組電壓開始下降,即負(fù)值時系統(tǒng)從快速充電轉(zhuǎn)到涓流充電〔時間段4〕,此時電池電壓繼續(xù)下降到一定值后保持不變,電池溫度也隨之降低。當(dāng)充電電源從電路中移開后負(fù)載和MAX713從電池吸收電流〔時間段5〕。當(dāng)系統(tǒng)失去外部三相四線電壓以后自動切換為由備用電池供電,電路設(shè)計(jì)如圖3-5所示。圖3-5系統(tǒng)電源供電方式切換電路當(dāng)系統(tǒng)由三相四線工業(yè)用電供電時,觸點(diǎn)開關(guān)K1吸和到左邊,此時由外部三相電壓通過橋式整流以后得到的18V電壓經(jīng)過LM2575降壓以后提供應(yīng)系統(tǒng)+5V電壓VCC。同時給備用電池充電當(dāng)外部三相四線電壓掉電后,觸點(diǎn)開關(guān)K1吸和到右邊,備用電池接入供電回路,給系統(tǒng)提供工作+5V電壓VCC。[9]3.3掉電數(shù)據(jù)保護(hù)功能的實(shí)現(xiàn)1.掉電數(shù)據(jù)保護(hù)功能的作用單片機(jī)控制系統(tǒng)中,通常一些重要的數(shù)據(jù)需要具有在系統(tǒng)掉電以后不喪失,當(dāng)系統(tǒng)再次上電以后能夠正確讀取的功能。本例中我們需要實(shí)現(xiàn)一些通信數(shù)據(jù)的掉電保護(hù)功能,實(shí)現(xiàn)掉電數(shù)據(jù)保護(hù)功能的方法有很多,常用的有系統(tǒng)擴(kuò)展易失性存儲器外加電池的方法和系統(tǒng)擴(kuò)展非易失性存儲器的方法。其中系統(tǒng)擴(kuò)展非易失性存儲器的方法中常使用EEPROM和FLASH作為存儲介質(zhì),由于本例中需要實(shí)現(xiàn)掉電數(shù)據(jù)保護(hù)功能的數(shù)據(jù)不多,所以使用具有支持IIC總線數(shù)據(jù)傳送協(xié)議的串行CMOSEEPROMAT24C04作為系統(tǒng)的掉電數(shù)據(jù)保護(hù)介質(zhì)。掉電數(shù)據(jù)保護(hù)及其軟件的任務(wù)主要包括以下幾個方面:〔1〕IIC總線的原理及用單片機(jī)普通I/O口模擬IIC總線的方法?!?〕AT24C04芯片的讀寫驅(qū)動程序的編寫。[10]2.技術(shù)方案選擇具有IIC總線的芯片AT24C04作為掉電數(shù)據(jù)保護(hù)模塊,但是一般單片機(jī)沒有IIC總線接口,所以我們要用單片機(jī)的I/O口模擬IIC總線的時序來實(shí)現(xiàn)芯片的讀寫功能,圖3-6所示是AT24C04的管腳圖。圖3-6AT24C04的管腳圖IIC總線簡介IIC〔Inter-IntegratedCircuit〕總線是由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。IIC總線最主要的優(yōu)點(diǎn)是簡單性和有效性。由于接口直接接在組件之上,因此IIC總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互連本錢。IIC總線的另一個優(yōu)點(diǎn)是,它支持多主控,其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線。一個主控能夠控制信號的傳輸和時鐘頻率。在任何時間點(diǎn)上只能有一個主控。[11]2〕IIC總線工作原理IIC總線是由數(shù)據(jù)線SDA和時鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在CPU與被控有撥通各自的號碼才能工作,所以每個電路和模塊都有惟一的地址,在信息的傳輸過程中,IIC總線上并接的每一模塊電路既是主控器〔或被控器〕,又是發(fā)送器〔或接收器〕,這取決于它所要完成的功能。CPU發(fā)出的控制信號分為地址碼和控制量兩局部,地址碼用來選址,即接通需要控制的模塊,確定控制的種類;控制量決定該調(diào)整的類別及需要調(diào)整的量。這樣,各控制模塊雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。IIC總線在傳送數(shù)據(jù)過程中共有三種類型信號,它們分別是:開始信號、結(jié)束信號和應(yīng)答信號。開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。結(jié)束信號:SCL為低電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。應(yīng)答信號:接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個信號后,等待受控單元發(fā)出一個應(yīng)答信號,CPU接收到應(yīng)答信號后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號的判斷。假設(shè)未收到應(yīng)答信號,那么判斷為受控單元出現(xiàn)故障。由于選用的單片機(jī)沒有IIC總線控制器,所以就要用單片機(jī)的I/O口模擬IIC總線的時序來實(shí)現(xiàn)AT24C04的數(shù)據(jù)讀寫功能。下面介紹IIC總線讀寫數(shù)據(jù)的時序,這也是后面編寫讀寫驅(qū)動程序的根底。3〕IIC總線根本操作IIC規(guī)程運(yùn)用主/從雙向通信。器件發(fā)送數(shù)據(jù)到總線上,那么定義為發(fā)送器,器件接收數(shù)據(jù)那么定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)??偩€必須由主器件〔通常為微控制器〕控制,主器件產(chǎn)生串行時鐘〔SCL〕控制總線的傳輸方向,并產(chǎn)生起始和停止條件。SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件。[12]在起始條件之后,必須是器件的控制字節(jié),其中高四位為器件類型識別符,不同的芯片類型有不同的定義,EEPROM一般應(yīng)為1010。接著三位為片選〔AT24C04的A0是作為頁選P0〕,最后一位為讀寫位,當(dāng)為1時為讀操作,為0時為寫操作。AT24C04的控制字如圖9所示。1010A3A1P0P/W圖3-7AT24C04的控制字配置寫操作分為字節(jié)寫和頁面寫兩種操作,AT24C04容量為512字節(jié),分為32頁,每頁大小為16字節(jié)。字節(jié)寫操作要求單片機(jī)首先送出開始標(biāo)志和控制字等到AT24C04以低電平答復(fù)收到以后送出8位數(shù)據(jù)地址,AT24C04收到以后再次以低電平答復(fù),然后單片機(jī)送出8位數(shù)據(jù),待AT24C04收到并以低電平答復(fù)以后單片機(jī)送出結(jié)束位。這樣一次字節(jié)寫操作完成,AT24C04完成一個字節(jié)數(shù)據(jù)寫入之前不能再進(jìn)行第二次字節(jié)寫操作。上述過程如圖3-8所示圖3-8AT24C04字節(jié)寫操作時序頁面寫操作類似于字節(jié)寫操作,頁面寫操作是一次寫入16個字節(jié),其時序圖如圖11所示圖3-9AT24C04頁面寫操作時序讀操作有三種根本操作:當(dāng)前地址讀、隨機(jī)讀和順序讀。當(dāng)前地址讀:AT24C04內(nèi)部地址計(jì)數(shù)器會自動記下上次讀或?qū)懙牡刂?,所以只要AT24C04不掉電,我們就可以讀出上次讀或?qū)懙牡刂穬?nèi)的數(shù)據(jù),需要注意的是當(dāng)AT24C04返回?cái)?shù)據(jù)內(nèi)容data以后單片機(jī)不用給答復(fù)信號,直接發(fā)出停止位既可。當(dāng)前地址讀操作時序如圖3-10所示。圖3-10AT24C04當(dāng)前地址讀時序隨即讀時序如圖3-11所示。圖3-11AT24C04隨機(jī)讀時序順序讀:順序讀每次讀出一個字節(jié)內(nèi)容,當(dāng)單片機(jī)送出停止位時停止讀取數(shù)據(jù)。如圖14所示。圖3-12AT24C04順序地址讀時序3.3 RS-232、RS-485串行通信設(shè)計(jì)3.3.1串行通信方的作用單片機(jī)w77e58作為系統(tǒng)的要控制器件負(fù)責(zé)兩個串口數(shù)據(jù)收發(fā)和處理工作,下面介紹本例中雙串口通信的實(shí)現(xiàn)[13]。3.3.2.技術(shù)方案本例中要使用兩個串口,一個串口用做RS-485,用來和電表通信另一個串口用作RS-232,用來和電表通信。而一般的51單片機(jī)只有一個串口驅(qū)動器,我們可以選用具有兩個串口驅(qū)動器的增強(qiáng)型單片機(jī)例如w77e58,或者采用單串口單片機(jī)通過串口擴(kuò)展芯片例如16c550來擴(kuò)展出第二個串口。下面對這兩種方案做簡單的比照:方案1:采用具有兩個串口驅(qū)動器的增強(qiáng)型單片機(jī)w77e58。由于串口驅(qū)動在單片機(jī)內(nèi)部,所以不用外部再增加硬件設(shè)備就可以實(shí)現(xiàn)雙串口功能同時這種方案的穩(wěn)定性好也比擬可靠,而且相對于采用單串口單片機(jī)16c550本錢較低。但是雙串口單片機(jī)w77e58比一般51單片機(jī)在使用上稍微復(fù)雜。方案2:采用具有一個串口驅(qū)動器的單片機(jī)擴(kuò)展串口芯片16c550。這種方案實(shí)際上是對單片機(jī)擴(kuò)展了一組外部存放器,所以調(diào)試的時候比方案一簡單,但是需要硬件投入比方案一多,同時系統(tǒng)穩(wěn)定性沒有方案一好。經(jīng)過比照可以發(fā)現(xiàn)方案一在本錢投入和穩(wěn)定性方面都比方案二好,雖然方案一的調(diào)試過程比方案二稍微復(fù)雜一點(diǎn)。下面會具體介紹雙串口單片機(jī)w77e58法,如圖15所示[14]。圖3-13單片機(jī)w77e58w77e58是WINBOND的增強(qiáng)型51單片機(jī),除具有一般51單片機(jī)的功能外,它還具有兩個串行口控制器32kFlashEPROM,同時芯片內(nèi)置了看門狗電路。3.4 通信協(xié)議設(shè)計(jì)3.4.1通信協(xié)議的作用在實(shí)際應(yīng)用中,單片機(jī)很多時候不是作為一個獨(dú)立的控制單元而存在,它還要與其他控制單元進(jìn)行通信。這些控制單元可能是其他的單片機(jī)系統(tǒng),也可能是PC機(jī)如果是短距離通信可以使用RS-232,如果是長距離通信的話,可以選RS-485。在通信過程中,通信設(shè)備雙方是相互獨(dú)立的,從而造成了通信過程中數(shù)據(jù)傳輸?shù)牟淮_定性,即通信甲方向乙方發(fā)送完數(shù)據(jù)后,并不知道乙方是否正確收到。系統(tǒng)能否很好地克服這種不可確定性,很大程度上取決于通信過程中的通信協(xié)議及通信流程的設(shè)計(jì)。3.4.2. 技術(shù)方案本系統(tǒng)中需要使用兩個異步串行口,一個用來和監(jiān)控中心通信,另外一個用來和電表通信。和監(jiān)控中心通信使用RS-485,遵循本例中自定的通信規(guī)約;和電表通信的串口使用RS-232方式,通信遵循DL/T—645電表通信規(guī)約。〔1〕監(jiān)控中心通信規(guī)約設(shè)計(jì)良好的通信協(xié)議中的數(shù)據(jù)格式一般都是基于包〔幀〕的,即將所要發(fā)送的數(shù)據(jù)/命令的頭尾參加修飾性的字符,形成一個包〔幀〕發(fā)送出去;接受時將所收到的包〔幀〕去掉所參加的頭尾既可取出命令/數(shù)據(jù)。當(dāng)確定了通信過程中的通信協(xié)議格式和通信流程后,通信協(xié)議的框架就根本建立起來了下面分別介紹這兩個方面的內(nèi)容。本例中使用的通信協(xié)議格式如下:〔幀頭〕〔幀尾〕表3-1HeadAddrData_lenFunc_codeData_areaCRC1616_Bits16_Bits8_Bits8_BitsN*8_Bits16_Bits其中:〔1〕Head為幀起始字符代表一幀數(shù)據(jù)開始,雙字節(jié)。本系統(tǒng)設(shè)定為十六進(jìn)制的0xfa,0xfa?!?〕Addr為模塊的地址號,雙字節(jié)。每個模塊設(shè)定的地址號是惟一的,最大可支持65535個?!?〕模塊。同時規(guī)定0xff0xff為系統(tǒng)播送地址號?!?〕Data_len為數(shù)據(jù)幀的長度,包括Func_code及Data_area中包含的字節(jié)個數(shù)。〔5〕Func-Code為功能代碼,單字節(jié)。本例中用功能代碼來定義一些任務(wù),不同任務(wù)應(yīng)該有不同的功能代碼。〔6〕Data_area為幀的數(shù)據(jù)區(qū)。定義最多有N=100個字節(jié)?!?〕CRC16為幀的校驗(yàn)信息,采用CRC-16校驗(yàn)碼,低字節(jié)先發(fā)送,高字節(jié)后發(fā)送。此例中的通信協(xié)議是基于長度的。整個幀的接收和停止是根據(jù)幀的起始字符、長度字符來完成。當(dāng)出現(xiàn)一個起始字符時,即表示某一幀已經(jīng)到來,當(dāng)接收完所規(guī)定的長度時,一幀數(shù)據(jù)結(jié)束。單片機(jī)和監(jiān)控計(jì)算機(jī)應(yīng)該都遵循此通信協(xié)議,這樣才能保證通信的正確性。通信過程中的某一幀數(shù)據(jù)的Func-Code〔功能代碼〕決定了這一幀數(shù)據(jù)Data_area的長度。也就是說不管是監(jiān)控主機(jī)對單片機(jī)發(fā)送數(shù)據(jù)還是單片機(jī)對監(jiān)控主機(jī)發(fā)送數(shù)據(jù),其功能代碼都應(yīng)該指定惟一的任務(wù)并且此任務(wù)的數(shù)據(jù)長度是可以確定的。[16]〔2〕電表通信規(guī)約DL/T—645簡介電表通信規(guī)約DL/T—645是一種適用于本地系統(tǒng)中多功能電能表的費(fèi)率與手持單元或其他數(shù)據(jù)終端設(shè)備進(jìn)行電對點(diǎn)或一主多從的數(shù)據(jù)交換方式,規(guī)定了他們之間的物理連接,通信鏈路及應(yīng)用技術(shù)標(biāo)準(zhǔn)。此通信協(xié)議對通信過程的物理層、鏈路層、應(yīng)用層都做了詳盡的說明,此處只對規(guī)約中定義的通信數(shù)據(jù)格式作簡單的介紹。0D0D1D2D3D4D5D6D7P1圖3-14字節(jié)傳輸序列。字節(jié)傳輸方向?yàn)閺淖蟮接遥渲?為起始位,D0到D7為8位數(shù)據(jù)位,P為偶校驗(yàn)位,1為停止位。通信協(xié)議中規(guī)定通信以幀為傳輸單元,幀格式如下:表3-2說明代碼幀起始符地址域幀起始符控制碼數(shù)據(jù)長度域數(shù)據(jù)域校驗(yàn)碼結(jié)束符68HA0A1A2A3A4A568HCLDATACS16H幀格式說明如下:幀起始符68H:標(biāo)識一幀信息的開始,其值為68H=01101000B。[17]地址域A0~A5:地址域由6個字節(jié)構(gòu)成,每字節(jié)2位BCD碼。地址長度可達(dá)12位十進(jìn)制數(shù),可以為表號,資產(chǎn)號,用戶號,設(shè)備號等。具體使用由自定義,當(dāng)使用的地址碼長度缺乏6字節(jié)時,用十六進(jìn)制AAH補(bǔ)足6字節(jié),低地址位在前,高地址位在后。當(dāng)?shù)刂窞?99999999999H時,為播送地址。控制碼C:控制碼的格式如下所示:D7D6D5D4D3D2D1D0圖3-14D7=0:由主站發(fā)出的命令幀;D7=1:由從站發(fā)出的應(yīng)答幀。D6=0:從站正確應(yīng)答;D6=1:從站對異常信息的應(yīng)答。D5=0:無后續(xù)數(shù)據(jù)幀;D5=1:有后續(xù)數(shù)據(jù)幀。D4~D0:請求及應(yīng)答功能碼。00000:保存。00001:讀數(shù)據(jù)。00010:讀后續(xù)數(shù)據(jù)。00011:重讀數(shù)據(jù)。00100:寫數(shù)據(jù)。01000:播送校時。01010:寫設(shè)備地址。01100:更改通信速率。01111:修改密碼。10000:最大需量清零。數(shù)據(jù)長度L:L為數(shù)據(jù)域的字節(jié)數(shù)。讀數(shù)據(jù)時L<=200,寫數(shù)據(jù)時L<=50,L=0表示無數(shù)據(jù)。數(shù)據(jù)域DATA數(shù)據(jù)域包括數(shù)據(jù)標(biāo)識和數(shù)據(jù)、密碼等,其結(jié)構(gòu)隨控制碼的功能而改變。傳輸時發(fā)送方按字節(jié)進(jìn)行加33H處理,接受方按字節(jié)進(jìn)行減33H處理。校驗(yàn)碼CS:從幀起始符開始到校驗(yàn)碼之前的所有字節(jié)的模256的和,即各字節(jié)二進(jìn)制算術(shù)和,不計(jì)超過256的溢出值。結(jié)束符16H:標(biāo)識一幀信息的結(jié)束,其值為16H=00010110B。〔3〕通信協(xié)議中CRC16校驗(yàn)算法的實(shí)現(xiàn)在數(shù)字通信系統(tǒng)中可靠與快速是一對矛盾。假設(shè)要求快速,那么必然使得每個數(shù)據(jù)碼元所占的時間縮短、波形變窄、能量減少,從而在受到干擾后產(chǎn)生錯誤的可能性增加,傳送信息的可靠性下降。假設(shè)是要求可靠,那么使得傳送消息的速率變慢,因此,如何合理地解決可靠與速度這一對矛盾,是正確設(shè)計(jì)一個通信系統(tǒng)的關(guān)鍵問題之一。為保證傳輸過程的正確性,需要對通信過程進(jìn)行過失控制。過失控制最常用的方法是自動請求重發(fā)方式〔ARQ〕、向前糾錯方式〔FEC〕和混合糾錯〔HEC〕。在傳輸過程誤碼率比擬低時,用FEC方式比擬理想。在傳輸過程誤碼率較高時,采用FEC容易出現(xiàn)“亂糾〞現(xiàn)象。HEC方式那么是ARQ和FEC的結(jié)合。在許多數(shù)字通信中,廣泛采用ARQ方式,此時的過失控制只需要檢錯功能。實(shí)現(xiàn)檢錯功能的過失控制方法很多,傳統(tǒng)的有:奇偶校驗(yàn)、校驗(yàn)和檢測、重復(fù)碼校驗(yàn)、恒比碼校驗(yàn)、行列冗余碼校驗(yàn)等,這些方法都增加數(shù)據(jù)的冗余量,將校驗(yàn)碼和數(shù)據(jù)一起發(fā)送到接受端。接受端對接受到的數(shù)據(jù)進(jìn)行相同校驗(yàn),再將得到的校驗(yàn)碼和接受到的校驗(yàn)碼比擬,如果二者一致那么認(rèn)為傳輸正確。但這些方法都有各自的缺點(diǎn),誤判的概率比擬高。[18]CRC的全稱為CyclicRedundancyCheck,中文名稱為循環(huán)冗余校驗(yàn)。它是一類重要的線性分組碼,編碼和解碼方法簡單,檢錯和糾錯能力強(qiáng),在通信領(lǐng)域廣泛地用于實(shí)現(xiàn)過失控制。過失控制理論是在代數(shù)理論根底上建立起來的。這里著眼于介紹本例中CRC16的算法與實(shí)現(xiàn)。假設(shè)需要進(jìn)一步了解線性碼、分組碼、循環(huán)碼、糾錯編碼等方面的原理,可以閱讀有關(guān)資料。利用CRC進(jìn)行檢錯的過程可簡單描述為:在發(fā)送端根據(jù)要傳送的k位二進(jìn)制碼序列,以一定的規(guī)那么產(chǎn)生一個校驗(yàn)用的r監(jiān)督碼〔CRC碼〕,附在原始信息后邊,構(gòu)成一個新的二進(jìn)制碼序列數(shù)共k+r位,然后發(fā)送出去。在接收端,根據(jù)信息碼和CRC碼之間所遵循的規(guī)那么進(jìn)行檢驗(yàn),以確定傳送中是否出錯。這個規(guī)那么,在過失控制理論中稱為“生成多項(xiàng)式〞。CRC算法有很多標(biāo)準(zhǔn),常見的有:CRC-4,CRC-12,CRC-16,CRC-ITU,CRC-32,CRC-32c。本例中使用的是CRC-16標(biāo)準(zhǔn),下面詳細(xì)介紹本例中CRC16算法的實(shí)現(xiàn)。CRC算法可分為硬件電路實(shí)現(xiàn)方法和軟件實(shí)現(xiàn)方法,其中軟件實(shí)現(xiàn)方法主要有比特型算法和字節(jié)型算法,本例中使用字節(jié)型算法。比特型算法逐位進(jìn)行運(yùn)算,效率比擬低,不適用于高速通信的場合。數(shù)字通信系統(tǒng)〔各種通信標(biāo)準(zhǔn)〕一般是對一幀數(shù)據(jù)進(jìn)行CRC校驗(yàn),而字節(jié)是幀的根本單位。最常用的是一種按字節(jié)查表的快速算法,該算法基于這樣一個事實(shí):計(jì)算本字節(jié)后的CRC碼,等于上一字節(jié)余式CRC碼的低8位左移8位,加上上一字節(jié)CRC右移8位和本字節(jié)之和后所求得的CRC碼。如果我們把8位二進(jìn)制序列數(shù)的CRC〔共256個全部計(jì)算出來放在一個表里,編碼時只要從表中查找對應(yīng)的值進(jìn)行處理即可。CRC-ITU的計(jì)算算法如下:〔1〕存放器組初始化為全“1〞〔0xFFFF〕?!?〕存放器組向右移動一個字節(jié)?!?〕剛移出的那個字節(jié)與數(shù)據(jù)字節(jié)進(jìn)行異或運(yùn)算,得出一個指向值表的索引?!?〕索引所指的表值與存放器組做異或運(yùn)算?!?〕數(shù)據(jù)指針加1,如果數(shù)據(jù)沒有全部處理完,那么重復(fù)步驟〔2〕?!?〕存放器組取反,得到CRC,附加在數(shù)據(jù)之后。CRC-ITU的驗(yàn)證算法如下:〔1〕存放器組初始化為全“1〞〔0xFFFF〕?!?〕存放器組向右移動一個字節(jié)?!?〕剛移出的那個字節(jié)與數(shù)據(jù)字節(jié)進(jìn)行異或運(yùn)算,得出一個指向值表的索引?!?〕索引所指的表值與存放器組做異或運(yùn)算。〔5〕數(shù)據(jù)指針加1,如果數(shù)據(jù)沒有全部處理完,那么重復(fù)步驟〔2〕〔數(shù)據(jù)包括CRC的兩個字節(jié)〕。〔6〕存放器組的值是否等于“MagicValue〞〔0xF0B8〕,假設(shè)相等那么通過,否那么失敗。3.5抄表系統(tǒng)電路電路圖主要包括單片機(jī)核心電路,掉電數(shù)據(jù)保護(hù)電路,時鐘電路和串行通信接口電路這四個主要模塊。下面逐一簡要分析各模塊電路設(shè)計(jì):〔1〕w77e58單片機(jī)的核心電路。單片機(jī)的核心電路包括單片機(jī)w77e58,地址鎖存器74LS373和SRAM6264。〔2〕掉電數(shù)據(jù)保護(hù)電路。掉電數(shù)據(jù)保護(hù)電路包括具有IIC總線的EEPROMAT24c04。需要注意的是管腳SCL和SDA要接10K的上拉電阻?!?〕時鐘電路。時鐘電路包括時鐘芯片DS12887,時鐘芯片主要包括和單片機(jī)地址總線的連接和數(shù)據(jù)總線的連接?!?〕串行通信接口電路。系統(tǒng)具有兩個串行通信口,分別為RS-232和RS-485總線。RS-232接口由MAX232擴(kuò)展實(shí)現(xiàn),采用3線接法RS-485由MAX485擴(kuò)展實(shí)現(xiàn)。以下是系統(tǒng)其他局部的總體電路圖。[19]具體實(shí)現(xiàn)4.1串行通信的根底知識與外界的信息交換稱為通信。根本的通信方式有并行通信和串行通信兩種,一條信息的各位數(shù)據(jù)被逐位按順序傳送的通信方式稱為串行通信。串行通信又分為異步通信和同步通信兩種方式。串行通信的特點(diǎn)是:數(shù)據(jù)位傳送按位順序進(jìn)行,最少只需一根傳輸線即可完成,本錢低但傳送速度慢。串行通信的距離可以從幾米到幾千米。根據(jù)信息的傳送方向,串行通信可以進(jìn)一步分為單工、半雙工和全雙工三種。信息只能單向傳送為單工;信息能雙向傳送但不能同時雙向傳送稱為半雙工;信息能夠同時雙向傳送那么稱為全雙工。MCS-51單片機(jī)有一個全雙工串行口。全雙工的串行通信只需要一根輸出線和一根輸入線。數(shù)據(jù)的輸出又稱發(fā)送數(shù)據(jù)〔TXD〕,數(shù)據(jù)的輸入又稱接收數(shù)據(jù)〔RXD〕。串行數(shù)據(jù)通信中主要有兩個技術(shù)問題:一個是數(shù)據(jù)傳送,另一個是數(shù)據(jù)轉(zhuǎn)換。數(shù)據(jù)傳送主要解決傳送中的標(biāo)準(zhǔn)、格式及工作方式等問題。數(shù)據(jù)轉(zhuǎn)換是指數(shù)據(jù)的串并行轉(zhuǎn)換。具體說,在發(fā)送端,要把并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù);而在接收端,卻要把接收到的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)。[20]4.1.1串行通信的數(shù)據(jù)傳送單片機(jī)的串行通信使用的是異步串行通信,所謂異步就是指發(fā)送端和接收端使用的不是同一個時鐘。異步串行通信通常以字符〔或者字節(jié)〕為單位組成字符幀傳送。字符幀由發(fā)送端一幀一幀地傳送,接收端通過傳輸線一幀一幀地接收。字符幀由四局部組成,分別是起始位、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位。如圖4-1所示。圖4-1字符幀格式①起始位:位于字符幀的開頭,只占一位,始終為邏輯低電平,表示發(fā)送端開始發(fā)送一幀數(shù)據(jù)。②數(shù)據(jù)位:緊跟起始位后,可取5、6、7、8位,低位在前,高位在后。③奇偶校驗(yàn)位:占一位,用于對字符傳送作正確性檢查,因此奇偶校驗(yàn)位是可選擇的,共有三種可能,即奇偶校驗(yàn)、偶校驗(yàn)和無校驗(yàn),由用戶根據(jù)需要選定。④停止位:末尾,為邏輯“1〞高電平,可取1、1.5、2位,表示一幀字符傳送完畢。串行通信的速率用波特率來表示,所謂波特率就是指一秒鐘傳送數(shù)據(jù)位的個數(shù)。每秒鐘傳送一個數(shù)據(jù)位就是1波特,即1波特=1位/秒。波特率用于表征數(shù)據(jù)傳輸?shù)乃俣?,波特率越高,?shù)據(jù)傳輸速度越快。但波特率和字符的實(shí)際傳輸速率不同,字符的實(shí)際傳輸速率是每秒內(nèi)所傳字符幀的幀數(shù),和字符幀格式有關(guān)。通常,異步通信的波特率為50~9600b/s。[21]4.1.2串行通信的數(shù)據(jù)轉(zhuǎn)換單片機(jī)串行接口電路為用戶提供了兩個串行口緩沖存放器〔SBUF〕,一個稱為發(fā)送緩存器,它的用途是接收片內(nèi)總線送來的數(shù)據(jù),即發(fā)送緩沖器只能寫不能讀,發(fā)送緩沖器中的數(shù)據(jù)通過TXD引腳向外傳送;另一個稱為接收緩沖器,它的用途是向片內(nèi)總線發(fā)送數(shù)據(jù),即接收緩沖器只能讀不能寫,接收緩沖器通過RXD引腳接收數(shù)據(jù)。因?yàn)檫@兩個緩沖器一個只能寫,一個只能讀,所以可共用一個地址99H。4.1.3串行通信協(xié)議通信協(xié)議是指通信雙方共同遵守的交換數(shù)據(jù)的格式和意義的一組規(guī)那么。本系統(tǒng)的通信協(xié)議只需制訂信息在線路中的傳輸規(guī)那么,它涉及信息格式、順序控制、流量控制、信息的成幀與拆幀、過失控制及傳輸過程中的管理等方面。目前,采用的通信協(xié)議有兩類:異步協(xié)議和同步協(xié)議。同步協(xié)議又有面向字符和面向比特以及面向字節(jié)計(jì)數(shù)三種。在本設(shè)計(jì)中主要介紹異步通信協(xié)議。起止式異步通信的特點(diǎn)是:一個字符一個字符地傳輸,每個字符一位一位地傳輸,并且傳輸一個字符時,總是以“起始位〞開始,以“停止位〞結(jié)束,字符之間沒有固定的時間間隔要求。每一個字符的前面都有一位起始位〔低電平,邏輯值0〕,字符本身由5-7位數(shù)據(jù)位組成,接著字符后面是一位校驗(yàn)位〔也可以沒有校驗(yàn)位〕,最后是一位或一位半或二位停止位,停止位后面是不定長的空閑位。停止位和空閑位都規(guī)定為高電平〔邏輯值1〕,這樣就保證起始位開始處一定有一個下跳沿??煽闯?,這種格式是靠起始位和停止位來實(shí)現(xiàn)字符的界定或同步的,故稱為起止式協(xié)議。傳送時,數(shù)據(jù)的低位在前,高位在后。[22]起始位實(shí)際上是作為聯(lián)絡(luò)信號附加進(jìn)來的,當(dāng)它變?yōu)榈碗娖綍r,告訴收方傳送開始。它的到來,表示下面接著是數(shù)據(jù)位來了,要準(zhǔn)備接收。而停止位標(biāo)志一個字符的結(jié)束,它的出現(xiàn),表示一個字符傳送完畢。這樣就為通信雙方提供了何時開始收發(fā),何時結(jié)束的標(biāo)志。傳送開始前,發(fā)收雙方把所采用的起止式格式〔包括字符的數(shù)據(jù)位長度,停止位位數(shù),有無校驗(yàn)位以及是奇校驗(yàn)還是偶校驗(yàn)等〕和數(shù)據(jù)傳輸速率作統(tǒng)一規(guī)定。傳送開始后,接收設(shè)備不斷地檢測傳輸線,看是否有起始位到來。當(dāng)收到一系列的“1〞〔停止位或空閑位〕之后,檢測到一個下跳沿,說明起始位出現(xiàn),起始位經(jīng)確認(rèn)后,就開始接收所規(guī)定的數(shù)據(jù)位和奇偶校驗(yàn)位以及停止位。經(jīng)過處理將停止位去掉,把數(shù)據(jù)位拼裝成一個并行字節(jié),并且經(jīng)校驗(yàn)后,無奇偶錯才算正確的接收一個字符。一個字符接收完畢,接收設(shè)備又繼續(xù)測試傳輸線,監(jiān)視“0〞電平的到來和下一個字符的開始,直到全部數(shù)據(jù)傳送完畢。異步通信可以采用正邏輯或負(fù)邏輯,正負(fù)邏輯的表示如表4-1所示。表4-1正負(fù)邏輯的表示邏輯0邏輯1正邏輯低電平高電平負(fù)邏輯高電平低電平異步通信的信息格式如表4-2所示。表中位數(shù)的本質(zhì)含義是信號出現(xiàn)的時間,故可有分?jǐn)?shù)位,如1.5。表4-2異步通信的信息格式位名邏輯表示位數(shù)起始位邏輯01位數(shù)據(jù)位邏輯0或15位、6位、7位、8位校驗(yàn)位邏輯0或11位或無停止位邏輯11位、1.5位或2位空閑位邏輯1任意數(shù)量接收端以“接收時鐘〞和“波特率因子〞決定一位的時間長度。下面以波特率因子等于16〔接收時鐘每16個時鐘周期,使接收移位存放器移位一次〕、正邏輯為例說明異步通信的接收過程:①開始通信時,信號線為空閑〔邏輯1〕,當(dāng)檢測到由1到0的跳變時,開始對“接收時鐘〞計(jì)數(shù)。②當(dāng)計(jì)到8個時鐘時,對輸入信號進(jìn)行檢測,假設(shè)仍為低電平,那么確認(rèn)這是“起始位〞,而不是干擾信號。③接收端檢測到起始位后,隔16個接收時鐘,對輸入信號檢測一次,把對應(yīng)的值作為D0位數(shù)據(jù)。假設(shè)為邏輯1,作為數(shù)據(jù)位1;假設(shè)為邏輯0,作為數(shù)據(jù)位0。④再隔16個接收時鐘,對輸入信號檢測一次,把對應(yīng)的值作為D1位數(shù)據(jù)。依次檢測,直到全部數(shù)據(jù)位都輸入。⑤檢測校驗(yàn)位〔如果有的話〕。⑥接收到規(guī)定的數(shù)據(jù)位個數(shù)和校驗(yàn)位后,通信接口電路希望收到停止位〔邏輯1〕,假設(shè)此時未收到邏輯1,說明出現(xiàn)了錯誤,在狀態(tài)存放器中置“幀錯誤〞標(biāo)志。假設(shè)沒有錯誤,對全部數(shù)據(jù)位進(jìn)行奇偶校驗(yàn),無校驗(yàn)錯時,把數(shù)據(jù)位從移位存放器中送數(shù)據(jù)輸入存放器。假設(shè)校驗(yàn)錯,在狀態(tài)存放器中置奇偶錯標(biāo)志。⑦本幀信息全部接收完,把線路上出現(xiàn)的高電平作為空閑位。⑧當(dāng)信號再次變?yōu)榈蜁r,開始進(jìn)入下一幀的檢測。發(fā)送端以“發(fā)送時鐘〞和“波特率因子〞決定一位的時間長度,異步通信的發(fā)送過程如下:①當(dāng)初始化后,或者沒有信息需要發(fā)送時,發(fā)送端輸出邏輯1,即空閑位,空閑位可以有任意數(shù)量。②當(dāng)需要發(fā)送時,發(fā)送端首先輸出邏輯0,作為起始位。③接著,發(fā)送端首先發(fā)送D0位,直到各數(shù)據(jù)位發(fā)送完。④如果需要的話,發(fā)送端輸出校驗(yàn)位。⑤最后,發(fā)送端輸出停止位〔邏輯1〕。⑥如果沒有信息需要發(fā)送時,發(fā)送端輸出邏輯1,即空閑位,空閑位可以有任意數(shù)量。對于以上發(fā)送、接收過程應(yīng)注意以下幾點(diǎn):①接收端總是在每個字符的頭部〔即起始位〕進(jìn)行一次重新定位,因此發(fā)送端可以在字符之間插入不等長的空閑位,不影響接收端的接收。②發(fā)送端的發(fā)送時鐘和接收端的接收時鐘,其頻率允許有一定差異,當(dāng)頻率差異在一定范圍內(nèi),不會引起接收端檢測錯位,能夠正確接收。并且這種頻率差異不會因多個字符的連續(xù)接收而造成誤差累計(jì)〔因?yàn)槊總€字符的開始〔起始位處〕接收方均重新定位〕。只有當(dāng)發(fā)送時鐘和接收時鐘頻率差異太大,引起接收端采樣錯位,才造成接收錯誤。③起始位、校驗(yàn)位、停止位、空閑位的信號,由“發(fā)送移位存放器〞自動插入。在接收方,“接收移位存放器〞接收到一幀完整信息〔起始、數(shù)據(jù)、校驗(yàn)、停止〕后,僅把數(shù)據(jù)的各位送至“數(shù)據(jù)輸入存放器〞,即CPU從“數(shù)據(jù)輸入存放器〞中讀得的信息,只是有效數(shù)字,不包含起始位、校驗(yàn)位、停止位信息。由上述工作過程可看到,異步通信是按字符傳輸?shù)?,每傳輸一個字符,就用起始位來通知收方,以此來重新核對收發(fā)雙方同步。假設(shè)接收設(shè)備和發(fā)送設(shè)備兩者的時鐘頻率略有偏差,這也不會因偏差的累積而導(dǎo)致錯位,加之字符之間的空閑位也為這種偏差提供一種緩沖,所以異步串行通信的可靠性高。但由于要在每個字符的前后加上起始位和停止位這樣一些附加位,使得傳輸效率變低了,只有約80%。因此,起止協(xié)議一般用在數(shù)據(jù)速率較慢的場合〔小于19.2kbit/s〕。在高速傳送時,一般要采用同步協(xié)議。4.2RS-232、RS-485串行通信設(shè)計(jì)一般的MCS-51系列單片機(jī)只有一個串行接口,而w77e58有兩個串行接口,每個串口都有自己的發(fā)送和接受緩沖區(qū)。其中串口0用定時器0作波特率發(fā)生器,串口1用定時器1作波特率發(fā)生器w77e54是增強(qiáng)型51單片機(jī)其內(nèi)部存放器定義和MCS-51系列單片機(jī)有所不同下面是KEILC中w77e58單片機(jī)的存放器定義頭文件。由于該系統(tǒng)采用的是一點(diǎn)對多點(diǎn)的雙向數(shù)據(jù)傳輸,因此每家的表都有自己的地址碼。上位機(jī)可以查詢下位機(jī),下位機(jī)也可以定時發(fā)送數(shù)據(jù)給上位機(jī)。本系統(tǒng)要實(shí)現(xiàn)的目的是一機(jī)〔上位機(jī)〕對多機(jī)(下位機(jī))的通訊控制,其通訊軟件主要分為兩局部:上位機(jī)與下位機(jī)的遠(yuǎn)程通訊軟件;單片機(jī)GSM/MODEM的串行通訊軟件。程序設(shè)計(jì)的關(guān)鍵是上、下位機(jī)間的遠(yuǎn)程通訊的準(zhǔn)確性。在程序設(shè)計(jì)中,采用通訊協(xié)議〔Protocol〕的做法,由上位機(jī)發(fā)出讀表指令與地址碼,讓各個下位機(jī)將記錄的數(shù)據(jù)傳過來,同時進(jìn)行校驗(yàn),以保證數(shù)據(jù)的正確性。每個下位機(jī)都編有不同的地址碼,當(dāng)上位機(jī)向所有的下位機(jī)發(fā)送一個地址碼和抄表指令時,所有的下位機(jī)都接收到該地址碼,并比擬是否與其自身的地址碼相同,如不相同那么退出比擬,不再接收其他命令。如相同那么表示上位機(jī)查詢的就是該下位機(jī),同時收回應(yīng)答信號,并準(zhǔn)備接收命令,而上位機(jī)將收回的應(yīng)答信號與發(fā)出的地址碼相比擬,不同那么給出錯誤的信息,相同那么可控制已叫通的下位機(jī)。這時已叫通的下位機(jī)繼續(xù)接收上位機(jī)發(fā)送的抄表命令,并收集用戶的數(shù)據(jù),通過光纖網(wǎng)絡(luò)發(fā)送給上位機(jī),直到接收到上位機(jī)發(fā)來的執(zhí)行完成命令。程序流程圖見圖4-2、圖4-3。圖4-2圖4-3/使用串口實(shí)現(xiàn)數(shù)據(jù)通信,串口的工作方式有四種,其中方式0是作為同步移位一位存放器,可以通過外接移位存放器芯片實(shí)現(xiàn)擴(kuò)展I/O接口功能。方式1是8位數(shù)據(jù)異步通信接口,波特率可變。波特率定時器T1或者T2的溢出率經(jīng)分頻后得到。方式2是9位數(shù)據(jù)異步通信接口,波特率由主頻fosc分頻得到,當(dāng)SMOD=1時,波特率為fosc/32,當(dāng)SMOD=0時,波特率為fosc/64。方式3是9位數(shù)據(jù)異步通信接口,波特率可變。波特率由定時器T1或T2的溢出率經(jīng)分頻后得到。下面是本例中的雙串口初始化和相關(guān)操作程序。4.3系統(tǒng)通訊方式實(shí)現(xiàn)該系統(tǒng)設(shè)計(jì)為使用高性能CAN總線技術(shù),在控制主機(jī)〔上位機(jī)〕中使用由北京科日新控電子技術(shù)生產(chǎn)的KPCI-8110光隔非智能CAN總線通訊卡,各電能表〔下位機(jī)〕中使用由PHILIPS公司生產(chǎn)的SJA1000獨(dú)立控制器,然后把所有的電能表用一根屏蔽類的線連起來,接入控制主機(jī)的CAN總線通訊卡的DB9串口,從而到達(dá)控制主機(jī)對各電表的遠(yuǎn)程控制,而性能卓越的CAN總線技術(shù)也能保證不同類型的數(shù)據(jù)信號在總線上平安的進(jìn)行傳輸。CAN,全稱為“ControllerAreaNetwork〞,即控制器局域網(wǎng),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。最初,CAN被設(shè)計(jì)作為汽車環(huán)境中的微控制器通訊,在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網(wǎng)絡(luò)。比方:發(fā)動機(jī)管理系統(tǒng)、變速箱控制器、儀表裝備、電子主干系統(tǒng)中,均嵌入CAN控制裝置。CAN具有十分優(yōu)越的特點(diǎn),使我們有理由選擇它。這些特性包括:〔1〕低本錢〔2〕極高的總線利用率〔3〕很遠(yuǎn)的數(shù)據(jù)傳輸距離(長達(dá)10Km)〔4〕高速的數(shù)據(jù)傳輸速率〔高達(dá)1Mbit/s〕〔5〕可根據(jù)報(bào)文的ID決定接收或屏蔽該報(bào)文〔6〕可靠的錯誤處理和檢錯機(jī)制〔7〕發(fā)送的信息遭到破壞后,可自動重發(fā)〔8〕節(jié)點(diǎn)在錯誤嚴(yán)重的情況下具有自動退出總線的功能〔9〕報(bào)文不包含源地址或目標(biāo)地址,僅用標(biāo)志符來指示功能信息、優(yōu)先級信息一個由CAN總線構(gòu)成的單一網(wǎng)絡(luò)中,理論上可以掛接無數(shù)個節(jié)點(diǎn)。實(shí)際應(yīng)用中,節(jié)點(diǎn)數(shù)目受網(wǎng)絡(luò)硬件的電氣特性所限制。例如,當(dāng)使用北京科日新控電子技術(shù)KPCI8110作為CAN收發(fā)器時,同一網(wǎng)絡(luò)中允許掛接110個節(jié)點(diǎn)。CAN可提供高達(dá)1Mbit/s的數(shù)據(jù)傳輸速率,這使實(shí)時控制變得非常容易。另外,硬件的錯誤檢定特性也增強(qiáng)了CAN的抗電磁干擾能力。4.4掉電數(shù)據(jù)保護(hù)功能的軟件實(shí)現(xiàn)不同公司的24c系列IICEEPROM存儲器的管腳定義和封裝都是一樣的,只需根據(jù)實(shí)際需要選擇不同容量的芯片。用單片機(jī)2/O口模擬IICEEPROM的硬件連接非常簡單,只用用單片機(jī)的普通2/O口模擬IIC時鐘的時序讀寫芯片既可,本例中我們使用單片機(jī)的P1.0口線連SCL,P1.1口線連接SDA來模擬時序。使用不帶硬件總線驅(qū)動的單片機(jī)對IICEEPROM的讀寫操作的難點(diǎn)在于用軟件模擬IIC總線的時序,下面是本例中的IICEEPROM的讀寫驅(qū)動程序,此驅(qū)動程序支持?!渤绦蛟诟戒浿小?.5數(shù)傳終端的軟件實(shí)現(xiàn)數(shù)傳終端系統(tǒng)的軟件設(shè)計(jì)的核心局部是單片機(jī)與GPRS模塊的通信,兩者間需定義通信協(xié)議、規(guī)定幀的格式,通過AT命令實(shí)現(xiàn)GPRS網(wǎng)絡(luò)的附著、PDP激活、Internet的接入及數(shù)據(jù)傳輸。數(shù)據(jù)采集器模塊智能脈沖表(水表,電表及煤氣表)產(chǎn)生脈沖信號,并把它轉(zhuǎn)化為電信號送到采集器中,采集器負(fù)責(zé)對脈沖進(jìn)行計(jì)數(shù),同時與集中器進(jìn)行通信.采集器原理框圖如圖2所示.其核心器件是AT89C52.AT89C52是一種帶8K字節(jié)閃速可編程可擦除只讀存儲器(FlashROM)的低電壓,高性能CMOS8位微控制器.脈沖表的信號送入8259A中斷控制器后,經(jīng)8259A內(nèi)部邏輯判斷后,假設(shè)此信號不被屏蔽,并且比CPU正在執(zhí)行的事務(wù)有更高的優(yōu)先權(quán),此時8259A向AT89C52的CPU提出中斷申請,AT89C52在MOVX指令操作下產(chǎn)生中斷響應(yīng)信號,送給8259A的26腳,說明AT89C52可以響應(yīng)該中斷請求,接著就處理這一事務(wù).在這一過程中,如果多個脈沖向AT89C52同時提出中斷請求,AT89C52的CPU還要判斷它們的優(yōu)先級別。該模塊的X5045中有E2PROM可編程存儲器,信息可寫入X5045中,供CPU讀出,然后送到LCM103中去顯示.LCM103是8段液晶顯示器,它可以輪流顯示各戶,各表的耗量。在數(shù)據(jù)采集器中,8259A可以級連,它在處理信號時起到了很重要的作用。由于AT89C52不象8088本身不帶響應(yīng)信號,可以用與門和非門組合解決這個技術(shù)問題。4.5.1.AT指令的調(diào)試?yán)肁T指令控制M23模塊建立無線信道進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E如下:〔1〕AT$NOSLEEP=1:防止串口進(jìn)入睡眠狀態(tài)。利用M23進(jìn)行TCP/IP數(shù)據(jù)連接前必須使串口永遠(yuǎn)翻開,否那么可能會造成數(shù)據(jù)喪失?!?〕AT+CGDCONT=1,“IP〞,“APN〞:設(shè)置接入網(wǎng)關(guān),中國移動的APN是CMNET?!?〕AT%CGPCO=1,“PAP,,〞,1:PAP驗(yàn)證,默認(rèn)的用戶名和密碼。(4)AT$DESTINFO=“*.*.*.*〞,1,主站的端口號:設(shè)置遠(yuǎn)端主站的IP地址,其中“*.*.*.*〞指遠(yuǎn)端主站的固定的IP地址,“1〞指支持TCP協(xié)議,假設(shè)為“2〞指支持UDP協(xié)議?!?〕ATD*97#:撥號建立連接。當(dāng)建立了TCP/IP的連接后,可以通過發(fā)送“+++〞〔后面不能有任何字符〕命令從TCP狀態(tài)切換到AT命令狀態(tài),TCP狀態(tài)此時沒有斷開只是被暫時掛起,在AT命令狀態(tài)可以使用“ATO〞命令來返回到TCP狀態(tài),也可以在AT命令狀態(tài)發(fā)送“ATH〞徹底斷開TCP連接。4.5.2程序的設(shè)計(jì)系統(tǒng)程序采用標(biāo)準(zhǔn)的C51進(jìn)行編寫,采用模塊化設(shè)計(jì)的思想,主要分為系統(tǒng)初始化模塊、建立連接模塊、數(shù)據(jù)傳輸模塊、斷開連接模塊4局部。系統(tǒng)程序流程圖圖4-4〔1〕單片機(jī)的初始化。單片機(jī)初始化局部將W77E58串口設(shè)置為工作方式1,即1個起始位,8位數(shù)據(jù)位和1位停止位。定時器選用定時器1的工作模式2即8位自動重裝定時器來作為串行口波特率發(fā)生器,波特率設(shè)為9600b/s,晶振為11.0592MHZ。采用串行口中斷技術(shù)來實(shí)現(xiàn)數(shù)據(jù)或指令的接收和轉(zhuǎn)發(fā)。初始化時先將串行口中斷關(guān)閉,在與上位機(jī)建立連接后再翻開。

〔2〕建立連接。單片機(jī)使用串行口對M23模塊發(fā)送AT命令建立連接,相鄰AT命令間要有2~3s的延時,所以每發(fā)送完一條AT命令都要調(diào)用一個2~3s的延時子程序,然后通過串行中斷接收子程序接收AT命令返回值來判斷連接是否成功。

〔3〕數(shù)據(jù)傳輸。在M23模塊成功接入網(wǎng)絡(luò)后,單片機(jī)只要將要發(fā)送的數(shù)據(jù)通過串口發(fā)給M23,M23就會把數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的IP地址的PC機(jī)。

〔4〕GPRS通信心跳信息。M23模塊在接入網(wǎng)絡(luò)后,在設(shè)定的周期內(nèi)無數(shù)據(jù)通信時,由單片機(jī)控制M23模塊向主站發(fā)送心跳信息,主站收到心跳信息后,回應(yīng)應(yīng)答信號

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論