當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于CAN總線數(shù)據(jù)采集的遠(yuǎn)程抄表系統(tǒng)設(shè)計

本文主要提出一種小區(qū)電能表自動抄表的系統(tǒng)設(shè)計方案。
隨著智能化建筑在許多國家應(yīng)運而生。自動抄表系統(tǒng)是大力發(fā)展中的智能建筑、樓宇自動化的重要組成部分,是家庭自動化的必然,因而日益受到關(guān)注。與傳統(tǒng)抄表方式相比,智能抄表系統(tǒng)具有方便快捷、節(jié)省人力物力、提高工作效率、精確度高等優(yōu)點。

系統(tǒng)構(gòu)成

如圖1所示,自動抄表系統(tǒng)主要由電能表、數(shù)據(jù)采集器、集中器、數(shù)據(jù)傳輸通道和后臺管理服務(wù)器等組成;其中電能表主要是在傳統(tǒng)機械式電表基礎(chǔ)上將轉(zhuǎn)盤適當(dāng)改造,以便能將其轉(zhuǎn)動圈數(shù)被數(shù)據(jù)采集器采集轉(zhuǎn)化為電脈沖數(shù),以達(dá)到數(shù)據(jù)采樣的目的;采集器主要完成將電表用電量轉(zhuǎn)換成電脈沖信號以完成數(shù)據(jù)的采集,同時還具備將采集的數(shù)據(jù)保存、通過CAN總線傳輸給集中器轉(zhuǎn)發(fā)給后臺管理系統(tǒng)、顯示用戶剩余電度數(shù)以及根據(jù)情況切斷用戶電路等功能。數(shù)據(jù)集中器則是通過CAN總線收集各用戶電表上傳數(shù)據(jù),并通過無線GSM網(wǎng)絡(luò)傳送給后臺管理服務(wù)器系統(tǒng),同時數(shù)據(jù)集中器亦可將后臺管理服務(wù)器各項命令轉(zhuǎn)發(fā)給對應(yīng)電表數(shù)據(jù)收集器,并完成相應(yīng)控制。通過以上功能基本可以實現(xiàn)抄表管理收費一體化等工作。

圖1 系統(tǒng)集成示意圖

數(shù)據(jù)采集器硬件組成

數(shù)據(jù)采集器硬件原理如圖2所示,數(shù)據(jù)采集器主要包括數(shù)據(jù)采集電路、數(shù)據(jù)保存電路以及數(shù)據(jù)傳輸CAN總線節(jié)點電路,同時根據(jù)其他功能擴(kuò)展(如預(yù)付費功能)增加了剩余電度數(shù)顯示以及通過繼電器對用戶電路切斷和接通電路。


圖2 遠(yuǎn)程抄表數(shù)據(jù)采集器硬件原理圖

采集器采用單片機89C51,其內(nèi)部有4KB的ROM,128字節(jié)的RAM以及32個I/O口。P1口與串行器件24C02和顯示、繼電器電路連接。其中的顯示模塊采用串行方式進(jìn)行通信,分別采用P1.0、P1.1、P1.2模擬時鐘信號線和數(shù)據(jù)信號線。24C02用來存儲用戶電度表不同時段消費電度數(shù)和用戶電度表采集器編號(CAN節(jié)點標(biāo)號)。P0口主要用來與CAN總線控制器SJA1000相連,用作數(shù)據(jù)線。監(jiān)控電路采用DS1232芯片,它是看門狗定時器,功能是上電和掉電時給89C51、CAN控制器SJA1000產(chǎn)生復(fù)位信號;看門狗對系統(tǒng)進(jìn)行監(jiān)控,防止死機不能恢復(fù)。日歷時鐘電路采用時鐘芯片PCF8583完成,由于系統(tǒng)中需要對用電實行分時按峰、谷、平不同時段進(jìn)行節(jié)計費,因此系統(tǒng)中必須建立不間斷供電(電池供電),以便提供實時鐘。

數(shù)據(jù)采集電路采用開關(guān)型霍爾傳感器A44L對加裝過小磁鐵的電表轉(zhuǎn)盤進(jìn)行將所轉(zhuǎn)的圈數(shù)轉(zhuǎn)化為數(shù)字信號,傳感器A44L工作原理如圖3a所示,集成霍爾開關(guān)是由穩(wěn)壓器A、霍爾電勢發(fā)生器(即硅霍爾片)B、差分放大器C、施密特觸發(fā)器D和OC門輸出E五個基本部分組成。(1),(2),(3)代表集成霍爾開關(guān)的三個引出端點。在輸入端(1)輸入電壓Vcc,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾發(fā)生器的兩端。根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處于磁場中時,在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會有一個霍爾電勢差VH輸出,該VH信號經(jīng)放大器放大以后送至施密特觸發(fā)器,使觸發(fā)器整形,成為方波輸送到OC門輸出。當(dāng)施加的磁場達(dá)到“工作點(即Bop)”時,觸發(fā)器輸出高電壓(相對于地電位),使三極管導(dǎo)通,此時,OC門輸出端輸出低電壓,通常稱這種狀態(tài)為“開”。當(dāng)施加的磁場達(dá)到“釋放點(即Brp)”時,觸發(fā)器輸出低電壓,三極管截止,使OC門輸出高電壓,這時稱其為“關(guān)”態(tài),這樣兩次高電壓變換,使霍爾開關(guān)完成了一次開關(guān)動作。Bop與Brp的差值一定,此差值Bh=Bop-Brp稱為磁滯,在此差值內(nèi),Vo保持不變,因而使開關(guān)輸出穩(wěn)定可靠。其輸出特性如圖3b和圖3c所示。


圖3 霍爾傳感器工作原理及輸出特性圖

CAN總線采用一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,數(shù)據(jù)長度為8個字節(jié),不會占用總線時間過長,從而保證了通信的實時性。CAN協(xié)議采用CRC檢驗并可提供相應(yīng)的錯誤處理功能,保證了數(shù)據(jù)通信的可靠性。CAN協(xié)議的一個最大特點是廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進(jìn)行編碼。采用這種方法可使網(wǎng)絡(luò)內(nèi)的節(jié)點個數(shù)在理論上不受限制,因此非常適合遠(yuǎn)程抄表控制系統(tǒng)。CAN總線控制電路如圖2所示,主要由控制器89C51、CAN通信控制器SJA1000、CAN總線驅(qū)動收發(fā)器82C250組成,單片機89C51對CA控制器接收到的數(shù)據(jù)進(jìn)行讀取和數(shù)據(jù)發(fā)送等程序處理,為了增強CAN總線節(jié)點的抗干擾能力,SJA1000的TX0和RX0并不直接與82C250的TXD和RXD相連,而是通過高速光耦6N137后與82C250相連,很好地實現(xiàn)了總線上各節(jié)點間的電器隔離。82C250的CANH和CANL引腳各自通過一個5歐姆的電阻與CAN總線相連,起到一定的限流作用,保護(hù)82C250免受過流沖擊。CANH、CANL與地之間并聯(lián)了兩個30pF的電容,可以濾除總線上的高頻干擾并起到一定的防電磁輻射的能力。另外,兩根CAN總線輸入端與地之間分別接防雷擊管,起到一定的保護(hù)作用。

數(shù)據(jù)采集器軟件設(shè)計

主程序流程

數(shù)據(jù)采集器在整個系統(tǒng)中有喂狗、計表、時鐘校時、用戶通斷電、CAN總線數(shù)據(jù)發(fā)送和接收、數(shù)據(jù)存儲與讀取以及顯示等功能,其中喂狗、計表和數(shù)據(jù)存儲及CAN總線數(shù)據(jù)接收分別采用定時終端、計數(shù)中斷和外部中斷實現(xiàn),顯示功能則為預(yù)付費功能而備(本文不作要求),CAN總線數(shù)據(jù)發(fā)送采用查詢方式和其他程序功能在主程序中實現(xiàn)。主程序流程如圖4所示。


圖4 主流程序圖
[!--empirenews.page--]
數(shù)據(jù)采集程序說明

數(shù)據(jù)采集是將電表轉(zhuǎn)盤每轉(zhuǎn)一圈轉(zhuǎn)化為一個周期電脈沖,單片機將此脈沖累加,從而測得電表消費度數(shù)。為了避免停電時造成計數(shù)丟失,造成電力公司損失,每計0.1度電時便將累計數(shù)據(jù)保存于24C02中;根據(jù)電度表量程,保存電表計數(shù)數(shù)據(jù)占用3個字節(jié),前2個字節(jié)保存整數(shù)部分,后1個保存小數(shù)部分。同時考慮到24C02擦寫壽命,在24C02中開辟240字節(jié)專門用于存儲電表技術(shù)以輪回寫入,防止將數(shù)據(jù)頻繁寫入固定地址而造成損壞。單片機采用定時計數(shù)器中斷進(jìn)行數(shù)據(jù)采集,以3000r/KWH為例,每轉(zhuǎn)300圈(0.1度)采樣一次并保存,程序如下:

void count0() interrupt 1 using 2

{

//工作在16位計數(shù)定模式,每計數(shù)300個脈沖中斷一次,晶振使用12Mhz

tl0=0xD4;

th0=0xFE;

DOTCOUNT++;// 記錄小數(shù)點后的數(shù)據(jù),無符號字符型

if(DOTCOUNT>=10){

COUNT++; //記錄整數(shù)部分,無符號整型

DOTCOUNT=0;

}

Write24C02(COUNT, DOTCOUNT,2);//2-表示保存數(shù)據(jù)為電表度數(shù)(1-用電高峰時間段設(shè)置)

//在此自程序中完成不同時間段(不同計價)分類存儲。

}

CAN總線數(shù)據(jù)收發(fā)程序說明

數(shù)據(jù)采集器數(shù)據(jù)傳輸內(nèi)容較為簡單,發(fā)送出去的數(shù)據(jù)主要包括電表度數(shù)(占5個字節(jié)),接收到的數(shù)據(jù)多為命令(1-4個字節(jié)),而CAN總線每次數(shù)據(jù)可傳輸8個字節(jié),因此每數(shù)據(jù)傳輸采用1幀即可完成。本設(shè)計采用PeliCAN工作模式(29位表示碼),利用查詢方式發(fā)送數(shù)據(jù),利用外部中斷0接收數(shù)據(jù)。

數(shù)據(jù)的發(fā)送由CAN控制器根據(jù)CAN協(xié)議規(guī)范自動完成。首先CPU必須將要發(fā)送的數(shù)據(jù)報文傳送到CAN控制器發(fā)送緩沖器中,并置位命令寄存器中的發(fā)送請求標(biāo)志,程序流程如圖5所示。


圖5 數(shù)據(jù)發(fā)送流程圖

數(shù)據(jù)接收采用外部中斷0接收,CAN控制器接收到一幀數(shù)據(jù)后,產(chǎn)生中斷觸發(fā)信號,CPU立即響應(yīng),將收到的報文接收到字節(jié)的接收緩沖器,并置位命令寄存器的釋放緩沖區(qū)標(biāo)志RRB。單片機根據(jù)接收數(shù)據(jù)進(jìn)行命令解析,并做出相應(yīng)執(zhí)行。部分程序代碼如下:

void INT0( ) interrupt 0 using 1

{

BYTE Length; // CAN 數(shù)據(jù)長度代碼

BYTE i; //下標(biāo)

bit FF //0 :標(biāo)準(zhǔn) CAN幀 1:擴(kuò)展幀

CANDR=RBF; //地址指向SJA1000接收緩沖區(qū)

ReceiveMessage[0]=CANDAT; // 讀取并保存你幀報文字節(jié)

FF=ReceiveMessage[0]&0x80;

//取出幀格式

Length=ReceiveMessage[0]&0x0F;

//取出報文長度

if(Length>0x08) Length=0x08;

ReceiveMessage[1]= CANDAT; //保存報文標(biāo)識碼1

ReceiveMessage[2]= CANDAT; //保存報文標(biāo)識碼2

if(FF){

ReceiveMessage[1]= CANDAT; //保存報文標(biāo)識碼3

ReceiveMessage[2]= CANDAT; //保存報文標(biāo)識碼4

}

For(i=0;i< Length;i++) ReceiveMessage[i+3]= CANDAT; //保存幀數(shù)據(jù)

CANCON=0x04 // 釋放接收緩沖區(qū)

}

數(shù)據(jù)集中器設(shè)計方案

數(shù)據(jù)收集器主要起到轉(zhuǎn)發(fā)后臺管理服務(wù)器和各節(jié)點間的數(shù)據(jù)傳輸功能,如圖6所示。CAN總線控制器模塊主要用來向各節(jié)點發(fā)送或接收相關(guān)數(shù)據(jù),各節(jié)點地址通過程序設(shè)置均已被包括在對應(yīng)報文29位表示碼中,數(shù)據(jù)集中器可以通過廣播或點對點向各用戶節(jié)點發(fā)送命令數(shù)據(jù)。由于用戶節(jié)點比較多,數(shù)據(jù)集中上傳比較多,因此需要較多的數(shù)據(jù)接收緩沖區(qū)保存,然后通過GSM轉(zhuǎn)發(fā)給后臺管理服務(wù)器完成遠(yuǎn)程數(shù)據(jù)交流,因此采用有512字節(jié)內(nèi)存的單片機STC89C51對CAN控制器和GSM模塊進(jìn)行控制。單片機控制GSM模塊在Text模式下接收手機短信,短信的收發(fā)是通過向串口以文本模式發(fā)送AT指令來實現(xiàn)的,其編碼轉(zhuǎn)換格式簡單,并有較高的轉(zhuǎn)換速率。


圖6 數(shù)據(jù)集中器示意圖

結(jié)束語

本文主要以電能表為例介紹了遠(yuǎn)程抄表系統(tǒng)數(shù)據(jù)采集和轉(zhuǎn)發(fā)的設(shè)計方案,在此基礎(chǔ)上只要稍加修改就可開發(fā)出不同抄表系統(tǒng),如預(yù)付費電表系統(tǒng)、遠(yuǎn)程燃?xì)獬硐到y(tǒng)、遠(yuǎn)程水表抄表系統(tǒng)等。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉