999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

支持多串口同時(shí)抄表的智能儀表程序設(shè)計(jì)*

2014-08-27 08:34:30同曉榮

同曉榮

(渭南師范學(xué)院數(shù)學(xué)與信息科學(xué)學(xué)院,渭南714000)

引 言

隨著計(jì)算機(jī)技術(shù)、通信技術(shù)、電子技術(shù)的發(fā)展,推動(dòng)了儀表行業(yè)快速發(fā)展;同時(shí),隨著人力成本的增加,人工抄表將會(huì)逐漸被淘汰;智能儀表將成為儀表行業(yè)發(fā)展的方向[1-3]。可以預(yù)見(jiàn),在未來(lái)20年儀表行業(yè)將經(jīng)歷一次革命,我國(guó)將由目前的人工抄表方式逐漸轉(zhuǎn)變?yōu)檫h(yuǎn)程抄表,各級(jí)水、氣和電力管理部門(mén)可以根據(jù)不同的權(quán)限對(duì)同一塊儀表進(jìn)行遠(yuǎn)程抄讀。為了支持多用戶同時(shí)抄表,本文設(shè)計(jì)了一種支持多串口同時(shí)抄讀的智能儀表程序,對(duì)程序設(shè)計(jì)流程做了詳細(xì)的闡述[4-5]。

1 支持多串口智能儀表軟件構(gòu)架

支持多串口智能儀表軟件構(gòu)架如圖1所示,支持多串口智能儀表的軟件構(gòu)架分為4層:驅(qū)動(dòng)層、基于任務(wù)調(diào)度的操作系統(tǒng)、通信協(xié)議層和應(yīng)用層。驅(qū)動(dòng)層主要提供智能儀表的各種硬件驅(qū)動(dòng)。其中,串口驅(qū)動(dòng)程序?qū)崿F(xiàn)的功能包括:串口的配置、提供通信協(xié)議在串口發(fā)送列表和串口接收列表中注冊(cè)的接口函數(shù)、為通信協(xié)議層提供數(shù)據(jù)服務(wù)。基于任務(wù)調(diào)度的操作系統(tǒng)的設(shè)計(jì)可以提高程序的通用性和擴(kuò)展性;通信協(xié)議層和應(yīng)用層根據(jù)需要在操作系統(tǒng)中注冊(cè)任務(wù),如果以后需要增加一個(gè)功能,則可以直接增加一個(gè)任務(wù)而不需要對(duì)以前的代碼進(jìn)行改動(dòng)[6-9]。

通信協(xié)議層主要對(duì)從物理層接收的數(shù)據(jù)幀和命令幀,按照通信協(xié)議的幀格式進(jìn)行解析和對(duì)從應(yīng)用層接收到的數(shù)據(jù)和命令按照通信協(xié)議的幀格式進(jìn)行組幀。應(yīng)用層主要實(shí)現(xiàn)智能電表和抄表客戶端應(yīng)用對(duì)象之間的通信[10]。支持多協(xié)議的智能儀表軟件構(gòu)架如圖1所示。

圖1 支持多協(xié)議的智能儀表軟件構(gòu)架

2 驅(qū)動(dòng)層串口程序設(shè)計(jì)

通信協(xié)議層系統(tǒng)初始化時(shí),通信協(xié)議需要在每個(gè)串口的發(fā)送列表和接收列表中注冊(cè)。其中,串口發(fā)送協(xié)議列表和串口接收協(xié)議列表如下所示:

其中UartTxNode的結(jié)構(gòu)體如下所示:

3 協(xié)議層和應(yīng)用層程序設(shè)計(jì)

在通信協(xié)議層定義一個(gè)類(lèi)型為PROTOCOL 的數(shù)組ProtocolPortList,ProtocolPortList數(shù)組的主要作用是:存放對(duì)應(yīng)串口接收的數(shù)據(jù)和要發(fā)送的數(shù)據(jù)、表征該串口目前的狀態(tài)。代碼如下:

RxBuff是用來(lái)存放從串口接收的數(shù)據(jù),TxBuff為要發(fā)送的數(shù)據(jù),如果接收到一幀合法數(shù)據(jù)將ReceiveSuccess-Flag置0xFF,該標(biāo)志的作用是為操作系統(tǒng)提供一個(gè)處理RxBuff中數(shù)據(jù)的標(biāo)志,防止已經(jīng)接收的幀被后續(xù)幀覆蓋。RxLen為RxBuff接收字節(jié)的長(zhǎng)度,TxLen為T(mén)xBuff要發(fā)送數(shù)據(jù)的長(zhǎng)度。

3.1 接收回調(diào)函數(shù)程序設(shè)計(jì)

當(dāng)串口接收到一個(gè)字節(jié)后調(diào)用接收回調(diào)函數(shù),接收數(shù)據(jù)回調(diào)函數(shù)數(shù)據(jù)處理流程圖如圖2所示。首先判斷返回的channel是否為物理通道1、物理通道2或物理通道3。如果不是則將此數(shù)據(jù)拋棄,如果是則判斷ProtocolList[channel].ReceiveSuccesFlag是否為0xFF。如果是,說(shuō)明該串口已經(jīng)接收到一幀數(shù)據(jù)但還沒(méi)有被處理,不能接收數(shù)據(jù)。如果不是,則判斷接收字節(jié)是否符合通信協(xié)議的幀格式,如果不符合則將接收字節(jié)拋棄,如果符合將接收字節(jié)Data存入接收緩沖區(qū)ProtocolList[channel].RxBuff中,并且將接收長(zhǎng)度ProtocolList[channel].RxLen加1,最后判斷是否一幀數(shù)據(jù)接收完畢,如果接收完成則將ProtocolList[channel].ReceiveSuccesFlag置為0xFF。

圖2 接收回調(diào)函數(shù)數(shù)據(jù)處理流程圖

3.2 消息格式

在應(yīng)用層和通信協(xié)議層中都有一個(gè)消息列表,分別來(lái)收集協(xié)議棧發(fā)送給它的消息和應(yīng)用層發(fā)送給通信協(xié)議層的消息。

Message MessageList[MAX_M(jìn)ESSAGE_NUM];

其中Message的結(jié)構(gòu)如下所示:

通道號(hào)為協(xié)議棧接收數(shù)據(jù)的串口號(hào),STaskID 為源任務(wù)號(hào)(協(xié)議棧的任務(wù)號(hào)或應(yīng)用層的任務(wù)號(hào)),DTaskID為目的任務(wù)ID(協(xié)議棧的任務(wù)號(hào)或應(yīng)用層的任務(wù)號(hào)),MessageType代表什么類(lèi)型的消息(讀數(shù)據(jù)請(qǐng)求、寫(xiě)數(shù)據(jù)請(qǐng)求),Data為所要寫(xiě)入數(shù)據(jù)的指針。

3.3 基于任務(wù)調(diào)度的操作系統(tǒng)對(duì)接收幀的處理

當(dāng)基于任務(wù)調(diào)度的操作系統(tǒng)執(zhí)行通信協(xié)議層任務(wù)時(shí)會(huì)搜索ProtocolList 數(shù)組中哪個(gè)元素的ProtocolList[channel].ReceiveSuccesFlag為0xFF,然后對(duì)其Protocol-List[channel].RxBuff中的數(shù)據(jù)進(jìn)行處理,處理過(guò)程是:

①首先按照通信協(xié)議層的幀格式對(duì)接收數(shù)據(jù)進(jìn)行解析。

②解析出需要發(fā)往應(yīng)用層的數(shù)據(jù),按一定的消息格式(包含發(fā)送數(shù)據(jù)和通道號(hào))組成一條消息,然后將其發(fā)送給應(yīng)用層,應(yīng)用層收到這個(gè)消息后將其存入AMessage-List應(yīng)用層消息列表中。

當(dāng)處理完成后將ProtocolList[channel].RxLen置0,將ProtocolList[channel].ReceiveSuccessFlag置0,以便于該channel串口通道可以接收下一幀數(shù)據(jù)。

基于任務(wù)調(diào)度的操作系統(tǒng)會(huì)按一定的調(diào)度時(shí)間來(lái)搜索ProtocolList中各個(gè)串口通道是否接收到一個(gè)完整的幀并進(jìn)行處理,這樣就能夠?qū)崿F(xiàn)協(xié)議棧對(duì)多個(gè)串口接收到的數(shù)據(jù)幀進(jìn)行及時(shí)處理,多串口同時(shí)進(jìn)行通信。

基于任務(wù)調(diào)度的操作系統(tǒng)會(huì)按一定的調(diào)度時(shí)間來(lái)搜索AMessageList是否為空,如果不為空則對(duì)相應(yīng)的消息進(jìn)行處理,這樣就能夠?qū)崿F(xiàn)應(yīng)用層對(duì)收到的多個(gè)消息進(jìn)行及時(shí)處理,實(shí)現(xiàn)并行通信。

3.4 協(xié)議層對(duì)從應(yīng)用層接收到的消息處理

智能儀表需要向客戶機(jī)返回抄讀數(shù)據(jù)時(shí),首先智能儀表應(yīng)用層將抄讀數(shù)據(jù)按照一定的消息格式組成一條消息,然后將該消息發(fā)送給通信協(xié)議層。通信協(xié)議層收到該消息后將其存入PMessageList協(xié)議層消息列表中。

基于任務(wù)調(diào)度的操作系統(tǒng)會(huì)按一定的調(diào)度時(shí)間來(lái)搜索PMessageList是否為空,如果不為空則對(duì)相應(yīng)的消息進(jìn)行處理。

通信協(xié)議層對(duì)消息的處理過(guò)程如下:

①通信協(xié)議層將消息進(jìn)行解析,解析出發(fā)送的Data和發(fā)送通道channel。

②將需要發(fā)送的數(shù)據(jù)按照通信協(xié)議的幀格式進(jìn)行組幀,并存儲(chǔ)于ProtocolList[channel].TxBuff中。ProtocolList[channel].TxLen為需要發(fā)送的長(zhǎng)度。

③調(diào)用串口發(fā)送函數(shù),將該幀數(shù)據(jù)通過(guò)串口channel發(fā)送出去。

3.5 發(fā)送回調(diào)函數(shù)程序設(shè)計(jì)

當(dāng)channel的串口將協(xié)議層數(shù)據(jù)幀發(fā)送出去后會(huì)調(diào)用發(fā)送回調(diào)函數(shù)將ProtocolList[channel].TxLen置為0。

結(jié) 語(yǔ)

本文根據(jù)智能儀表的發(fā)展方向和多用戶同時(shí)抄表的需求,闡述了設(shè)計(jì)支持多串口同時(shí)抄表的智能儀表程序的必要性。給出了支持多串口同時(shí)抄表的智能儀表軟件構(gòu)架、驅(qū)動(dòng)層程序設(shè)計(jì)、通信協(xié)議層程序設(shè)計(jì)和應(yīng)用層程序設(shè)計(jì)。它可以使多個(gè)抄表部門(mén)根據(jù)各自的權(quán)限同時(shí)對(duì)同一塊儀表進(jìn)行抄讀和設(shè)置。該設(shè)計(jì)可以廣泛地應(yīng)用于智能儀表行業(yè),從而推動(dòng)我國(guó)儀表行業(yè)的發(fā)展和國(guó)際化。

[1]趙凱.基于ARM 的智能儀表設(shè)計(jì)與開(kāi)發(fā)[D].北京:中國(guó)石油大學(xué),2010.

[2]翟勇.基于AT89S52的多軟串口通信系統(tǒng)[D].天津:天津大學(xué),2007.

[3]牛昱光,崔正文.多現(xiàn)場(chǎng)總線接口智能儀表設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2011,37(8):131-134.

[4]黃琦,王文海.基于MSP430F149的智能儀表的設(shè)計(jì)[J].自動(dòng)化儀表,2006,27(8):26-28.

[5]高新聞.智能儀表軟件開(kāi)發(fā)的自動(dòng)化技術(shù)研究[D].上海:上海大學(xué),2007.

[6]孫啟富,孫運(yùn)強(qiáng),姚愛(ài)琴.基于STM32的通用智能儀表設(shè)計(jì)與應(yīng)用[J].儀表技術(shù)與傳感器,2010(10):34-36.

[7]劉迪,李云昭,馬凱.智能儀表的構(gòu)成要素[J].科海故事博覽[J].科技論壇,2011(8):26-27.

[8]周海燕,王羨欠.工業(yè)控制中通用智能儀表系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(31):148-149.

[9]艾紅,鄧大偉,唐斌.基于DSP 的智能儀表串行通信與抗干擾實(shí)現(xiàn)[J].自動(dòng)化與儀器儀表,2011(6):125-127.

[10]蔣建春,曾素華.應(yīng)用于智能儀表的嵌入式OS的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(12):98-100.

主站蜘蛛池模板: 亚洲国产天堂久久综合| 精品国产免费观看| 国产精品性| 国产欧美在线观看精品一区污| 亚洲 日韩 激情 无码 中出| 久久综合婷婷| 久久久久亚洲av成人网人人软件| 中文字幕欧美日韩高清| 中文字幕2区| 国产精品久久精品| 特级毛片8级毛片免费观看| 波多野结衣一区二区三区88| 亚洲国产综合自在线另类| jijzzizz老师出水喷水喷出| 日韩精品一区二区深田咏美| 国产新AV天堂| 第九色区aⅴ天堂久久香| 97人人模人人爽人人喊小说| 中文字幕欧美日韩| 国产精品片在线观看手机版| 亚洲v日韩v欧美在线观看| 韩国v欧美v亚洲v日本v| 高清不卡毛片| 91精品国产麻豆国产自产在线| 欧美精品在线免费| 91午夜福利在线观看| 啪啪啪亚洲无码| 一本二本三本不卡无码| 久久人人97超碰人人澡爱香蕉| 国产手机在线小视频免费观看 | 在线观看视频99| 无码网站免费观看| 亚欧成人无码AV在线播放| 久久久久久午夜精品| 永久免费无码日韩视频| 无码免费试看| 狠狠v日韩v欧美v| 国产成人精品18| 99尹人香蕉国产免费天天拍| 一级毛片基地| 青青草国产免费国产| 91福利片| 亚洲国产天堂久久综合226114| 中文无码精品a∨在线观看| 欧美国产日韩另类| 亚洲一区精品视频在线| 亚洲午夜国产精品无卡| 国产福利在线免费| 三上悠亚在线精品二区| 网久久综合| 黄色a一级视频| 日本人真淫视频一区二区三区| 2021无码专区人妻系列日韩| 黄片在线永久| 国产视频只有无码精品| 首页亚洲国产丝袜长腿综合| 成人一区在线| 亚洲婷婷六月| 日韩欧美中文| 国产亚洲高清在线精品99| 免费激情网址| 99精品视频九九精品| 国产成人精品2021欧美日韩| 国产一级一级毛片永久| 亚洲日韩每日更新| a级毛片网| 有专无码视频| 欧美成人一级| 国产成人精品日本亚洲| 国内精品视频在线| 日韩av手机在线| 国产网站免费看| 欧美一级一级做性视频| 亚洲一区精品视频在线| 在线免费a视频| 午夜精品久久久久久久无码软件| 中国国产一级毛片| 欧美精品啪啪一区二区三区| julia中文字幕久久亚洲| 欧美a在线看| 亚洲女人在线| 日韩黄色在线|