无码午夜福利片在线观看,丰满熟妇遇黑吊潮喷视频,一夲道人妻熟女aⅴ深,精品国产第一国产综合精品

XML | RSS
公司首頁 公司簡介 新聞資訊 產(chǎn)品介紹 技術(shù)文檔 人才招聘 聯(lián)系我們
首頁技術(shù)文檔 >> CAN總線數(shù)據(jù)采集的遠程抄表系統(tǒng)設(shè)計

數(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 主流程序圖

數(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ù)器中斷進行數(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ā)送請求標志,程序流程如圖5所示。


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

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

void INT0( ) interrupt 0 using 1

{

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

BYTE i; //下標

bit FF //0 :標準 CAN幀 1:擴展幀

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

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

FF=ReceiveMessage[0]&0x80;

//取出幀格式

Length=ReceiveMessage[0]&0x0F;

//取出報文長度

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

ReceiveMessage[1]= CANDAT; //保存報文標識碼1

ReceiveMessage[2]= CANDAT; //保存報文標識碼2

if(FF){

ReceiveMessage[1]= CANDAT; //保存報文標識碼3

ReceiveMessage[2]= CANDAT; //保存報文標識碼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ù)器完成遠程數(shù)據(jù)交流,因此采用有512字節(jié)內(nèi)存的單片機STC89C51對CAN控制器和GSM模塊進行控制。單片機控制GSM模塊在Text模式下接收手機短信,短信的收發(fā)是通過向串口以文本模式發(fā)送AT指令來實現(xiàn)的,其編碼轉(zhuǎn)換格式簡單,并有較高的轉(zhuǎn)換速率。


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

結(jié)束語

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

[錄入:admin] [日期:10-05-17]

推薦產(chǎn)品

推薦文檔

銷售熱線:0769-83522588 行動電話:13712342966 劉先生
關(guān)于我們聯(lián)系我們留言反饋鏈接合作網(wǎng)站地圖

Copyright:東莞市賜宏智能設(shè)備制造有限公司專業(yè)提供:ict在線測試儀、ICT測試治具、過爐治具
粵ICP備11008958號-3