亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        大型電子投票表決系統(tǒng)通信協(xié)議的設(shè)計與實現(xiàn)

        2013-01-01 00:00:00孟慶波索娜
        計算技術(shù)與自動化 2013年3期

        作者簡介:孟慶波(1973—),男,河南孟津人,講師,碩士,研究方向:電力電子技術(shù)及變頻調(diào)速(E-mail:13838027936@139.com);索娜(1973—),女,河南鄭州人,副教授,碩士,研究方向:電氣化鐵道技術(shù)。

        摘要:根據(jù)通信協(xié)議的分層結(jié)構(gòu),對物理層、數(shù)據(jù)鏈路層和應(yīng)用層進行設(shè)計。實現(xiàn)了下位機(主控制器、分支控制器和表決器)的通信協(xié)議和上位機(計算機)的通信協(xié)議。該協(xié)議適用于計算機和單片機點對點通信的情況。本文所提出的通信協(xié)議的設(shè)計思想和思路方法對于相關(guān)設(shè)計和應(yīng)用具有一定的參考意義和借鑒價值。

        關(guān)鍵詞:通信協(xié)議;單片機;計算機;電子投票表決系統(tǒng)

        中圖分類號:TP368文獻標識碼:A

        1引言

        大型電子投票表決系統(tǒng)支持大型會議(如300-500人)的電子表決功能,采集和統(tǒng)計大量重要的短時表決數(shù)據(jù)必須準確穩(wěn)定,實時性好,能夠?qū)崿F(xiàn)大規(guī)模、中距離、高速率、低成本的多機通信。目前,對大型電子投票表決系統(tǒng)的研究和應(yīng)用成為智能會議系統(tǒng)的重點和難點,而系統(tǒng)通信的可靠性在很大程度上依賴于是否有一個好的通信協(xié)議。本文重點研究大型電子投票表決系統(tǒng)的通信協(xié)議。

        2通信協(xié)議設(shè)計

        在集散控制系統(tǒng)中,上位機與下位機之間如何進行數(shù)據(jù)傳輸,怎么提高通信的效率和可靠性,以及對通信過程中的故障處理,幀格式的約定,都需要一套詳盡的通信協(xié)議。

        通常,一個集散控制系統(tǒng)由一個主控計算機(上位機)和一系列單片機(下位機)構(gòu)成,它們之間再通過一定的物理媒介連接在一起,以完成必要的通信功能。對于一個特定的測控系統(tǒng)而言,所要測控的對象和所采取的測控算法是個有個性的東西;而上位機和下位機之間的通信可以看作是一系列命令流和數(shù)據(jù)流的流動,所采用的通信協(xié)議是用來保證傳輸過程的可靠和高效,是具有共性的,能夠也應(yīng)該有一個統(tǒng)一的設(shè)計標準[1]。

        2.1通信協(xié)議的分層結(jié)構(gòu)

        通信協(xié)議的設(shè)計通常采用分層的機構(gòu),如ISO的OSI參考模型[2]?;赗S485串行接口的電氣標準屬于七層OSI模型物理層的協(xié)議標準,如圖1所示。

        物理層是利用物理媒介實現(xiàn)物理連接的功能描述和執(zhí)行連接的規(guī)程,提供用于建立、保持和斷開物理連接的機械的、電氣的、功能的和過程的條件;數(shù)據(jù)鏈路層用于建立、維持和拆除鏈路連接,實現(xiàn)無差錯傳輸?shù)墓δ?;?yīng)用層針對不同的應(yīng)用,利用鏈路層提供的服務(wù),完成不同通信節(jié)點之間的通信。

        2.2通信協(xié)議的分層設(shè)計

        1)物理層協(xié)議設(shè)計

        上位機(計算機)和下位機(單片機)都掛在通信總線上,物理層的通信協(xié)議由RS485標準和多單片機通信方式共同實現(xiàn)。物理層要完成發(fā)送及接收字節(jié)流的任務(wù),但對傳輸過程的可靠性不做出保證,而由高層協(xié)議來保證。物理層為鏈路層提供接口(以子程序的形式來描述),包括Send子程序(功能為發(fā)送一個字節(jié))及Receive子程序(功能為接收一個字節(jié))。

        2)數(shù)據(jù)鏈路層協(xié)議設(shè)計

        鏈路層可以引入幀長度域、冗余字節(jié)和CRC校驗等方法進行差錯處理[3]。鏈路層向上層(應(yīng)用層)提供的接口為SendFrame(功能是發(fā)送一幀)和ReceiveFrame(功能是接收一幀),其中利用了下層(物理層)提供的接口。

        3)應(yīng)用層協(xié)議設(shè)計

        應(yīng)用層是協(xié)議的最高層,它的設(shè)計對于不同的應(yīng)用可以有所不同,但是也存在很多通用性的原則。應(yīng)用層也個有一定的差錯檢查能力:首先,它引入了冗余類型字節(jié);其次,數(shù)據(jù)域字節(jié)也可以采用CRC校驗等方法進行校驗[3]。

        2.3通信協(xié)議的機制規(guī)范

        基于本協(xié)議的通信可以有兩種機制。一種是面向握手的,即每發(fā)出一幀,總是要等待確認幀,否則將認為是通信出錯。這是一種可靠的通信方式,適合傳輸系統(tǒng)命令和一些非常重要的系統(tǒng)參數(shù)。另一種是無握手的,即發(fā)送方假設(shè)接收方總是接收正確,從而無須等待確認幀就不停地發(fā)送,適合大量前端采集數(shù)據(jù)的發(fā)送。在計算機與單片機實現(xiàn)編程通信之前,兩者之間需要規(guī)定握手協(xié)議,以保證數(shù)據(jù)收發(fā)的正確性[4]。在本系統(tǒng)中,單片機與單片機之間采用同樣格式的通信協(xié)議。在上位機呼叫下位機地址之后,就可利用本協(xié)議的規(guī)范來設(shè)計具體的通信流程。

        另外,設(shè)計一套完整的通信協(xié)議還要求結(jié)構(gòu)簡單、功能完備、高效可靠,同時要求具有通用性、兼容性與可擴充性,并且盡量標準化。

        3通信協(xié)議實現(xiàn)

        電子投票表決系統(tǒng)從本質(zhì)上來講,可認為是一個分布式的數(shù)據(jù)采集與集散控制系統(tǒng)。在集散控制系統(tǒng)中,普遍采用RS-485總線作為底層通信接口[5]。

        大型電子投票表決系統(tǒng)以RS485半雙工通信協(xié)議為基礎(chǔ),由計算機、主控制器、分支控制器和表決器構(gòu)成一個多級分層的總線型網(wǎng)絡(luò)結(jié)構(gòu)。下位機(包含主控制器、分支控制器和表決器)采用AT89CXX系列單片機實現(xiàn),構(gòu)成了一個符合RS-485通信規(guī)范的主從分布、三級驅(qū)動、串行連接的多機網(wǎng)絡(luò)[6]。

        軟件系統(tǒng)設(shè)計主要包括基于Windows操作系統(tǒng)的計算機(上位機)統(tǒng)計管理軟件設(shè)計和采用單片機技術(shù)的主控制器、分支控制器和表決器(下位機)的通信程序編寫。系統(tǒng)采用異步串行通信、主從呼叫響應(yīng)的通信方式,完成下位機通信、上位機通信和上下位機間的通信等功能。主控制器、分支控制器和表決器基于RS-485通信協(xié)議,采用查詢和地址數(shù)據(jù)回送的方式實現(xiàn)相互通信和統(tǒng)計功能。最后由主控制器對數(shù)據(jù)進行收集、統(tǒng)計和處理,并回送計算機。

        通信協(xié)議的實現(xiàn)主要包括下位機通信協(xié)議、上位機通信協(xié)議、上下位機間的通信過程等幾個部分。

        3.1下位機通信協(xié)議

        3.1.1主控制器通信協(xié)議

        主控制器核心芯片89C52對應(yīng)的主控制器的通信協(xié)議。

        主控制器至PC機通信協(xié)議:

        1) 一般約定:

        (1)采用RS-485(也可采用RS-232,需轉(zhuǎn)換)標準串行接口,完成主控制器至PC機通信。

        (2)波特率為:9600 bit/s。

        (3)1位起始位,8位數(shù)據(jù),1位停止位,無校驗。

        2) 幀數(shù)據(jù)結(jié)構(gòu):

        起始碼(固定為ASCII碼“BJ”)

        命令碼

        數(shù)據(jù)

        校驗碼

        3) 命令碼定義:

        表1命令碼定義表

        命令名稱

        命令碼(ASCII碼)

        1.表決器測試(注冊)開始

        “C”

        2.表決器測試(注冊)結(jié)束

        “E”

        3.表決開始

        “B”

        4.計票數(shù)據(jù)(表決動態(tài)數(shù)據(jù))

        “P”

        5.表決結(jié)束(含計票結(jié)果)

        “X”

        3.1.2分支控制器通信協(xié)議

        電子投票表決系統(tǒng)的分支控制器核心芯片89C51對應(yīng)的分支控制器的通信協(xié)議。

        通信協(xié)議約定:對于11.059M晶振,波特率設(shè)定為 14400,倍速為28800,單字節(jié)傳輸時間為 347us,延時為1ms。

        3.1.3表決器通信協(xié)議

        電子投票表決系統(tǒng)的表決器核心芯片89C2051對應(yīng)的表決器的通信協(xié)議。

        通信協(xié)議約定:對于11.0592M晶振,波特率設(shè)定為 9600,延時為10ms。接受和發(fā)送數(shù)據(jù)為定長8字節(jié)。表決時改為按鍵短時保持。

        3.2上位機通信協(xié)議

        Visual Basic提供三種通信編程方式。一是使用MSComm控件;二是使用Windows API;另外一個就是使用Inp和Out直接對端口讀寫方式[7]。本論文利用MSComm控件實現(xiàn)計算機與主控制器的通信。

        在上位機開始表決子程序的通信協(xié)議中,包含以下過程:

        1)設(shè)置打開通信端口1(COM1),并設(shè)置通信參數(shù)為19200波特,不校驗,8個數(shù)據(jù)位,一個停止位。

        2)發(fā)送單片機命令:

        為了使主機能夠?qū)φ麄€檢測過程進行實時控制,須要在發(fā)送命令以后設(shè)定等待的時間,也可以通過條件判斷下一步是發(fā)達還是接收命令。對發(fā)送的命令,可能是文本方式或二進制代碼。發(fā)送命令過程是一個帶參過程,這樣可使發(fā)送命令簡便易行。

        3)接收數(shù)據(jù):

        接收數(shù)據(jù)是一個被動的過程,可以通過函數(shù)來實現(xiàn),由定時器開啟。在接收過程中,多數(shù)用特征字符,如“OK”、“#”等。這些需要在通信協(xié)議中約定。

        4)Timer控件控制:

        通過Timer控件來控制通信中的發(fā)送命令和接收數(shù)據(jù)過程,在通信程序中設(shè)置兩個Timer控件分別控制發(fā)送單片機命令和接收單片機數(shù)據(jù)。

        5)自動接收、監(jiān)視總線狀態(tài)和通信錯誤的處理:

        自動接收、監(jiān)視總線狀態(tài)和通信錯誤的處理可以通過OnComm事件實現(xiàn)。通過控件中的OnComm事件可以捕捉和處理錯誤。當CommEvent屬性值發(fā)生改變時,表明有通信錯誤,就會產(chǎn)生OnComm事件。這樣可以監(jiān)視通信線路狀態(tài),得到單片機和主機及單片機和單片機之間的通信進程。

        綜合以上分析,我們可知:利用Visual Basic的串行通信控件實現(xiàn)了計算機與多單片機之間的通信。同時,采用定時器控件控制收發(fā)過程,在必要的地方自動接收,使定時控制和通信過程完美地結(jié)合起來,大大加快了進程,克服了往多“握手”協(xié)議造成的通信速度緩慢的缺點。

        3.3上下位機間的通信過程

        計算機(上位機)與多單片機(下位機)之間的串行通信采用RS-485總線標準,半雙工傳輸方式。

        1) 通信均有上位機發(fā)起,下位機不主動申請通信。

        2) 當處于輪詢狀態(tài)時,上位機依據(jù)下位機地址,定時向下位機發(fā)送呼叫指令。此時,每臺下位機都中斷接受并判斷,地址不相符的下位機中斷返回,執(zhí)行其他下位機任務(wù);反之則把本機地址及其狀態(tài)作為應(yīng)答信號發(fā)送給上位機。上位機接收到應(yīng)答信號后,可以作進一步的處理。

        4結(jié)論

        大型電子投票表決系統(tǒng)的軟件設(shè)計主要集中在通信協(xié)議的設(shè)計。通信協(xié)議是保證通信暢通的關(guān)鍵,在一定程度上也影響著網(wǎng)絡(luò)通信的可靠性。本論文設(shè)計了一種以單片機為主控機的基于幀的通信協(xié)議,本通信協(xié)議適用于計算機和單片機點對點通信的情況。

        需要注意的是,數(shù)據(jù)通信只是整個系統(tǒng)的一部分內(nèi)容,要占用盡量少的時間,以求達到整個系統(tǒng)的高效率。在通信數(shù)據(jù)量一定的情況下,采用較高的波特率雖然比較好,但高的波特率必定要降低傳輸距離,在實際應(yīng)用中必須仔細衡量。為了能使具體的命令、數(shù)據(jù)在網(wǎng)絡(luò)上正確地傳輸,在數(shù)據(jù)鏈路層必須提供一定的網(wǎng)絡(luò)協(xié)議,保證在物理層的比特流出現(xiàn)錯誤時能夠進行檢測和校正。為保證數(shù)據(jù)傳輸質(zhì)量,對每個字節(jié)進行校驗的同時,應(yīng)盡量減少特征字和校驗字。

        本文所提出的通信協(xié)議的設(shè)計思想和思路方法對于相關(guān)設(shè)計和應(yīng)用具有一定的參考意義和借鑒價值。

        參考文獻

        [1]唐竟新,董彥伶,李慶祥.計算機控制管理的投票系統(tǒng)[J].清華大學學報:自然科學版, 1997,37(1):98-101.

        [2]唐竟新,許歡.第二代計算機控制和管理的投票系統(tǒng)[J].計算機工程應(yīng)用,2002, 13(5):203-205.

        [3]孟德紅.循環(huán)冗余校驗碼的軟件實現(xiàn)[J].礦業(yè)研究與開發(fā),2000,24(2):40-41.

        [4]李朝青.PC機及單片機數(shù)據(jù)通信技術(shù)(第一版) [M].北京:北京航空航天大學出版社,2000.

        [5]沈紅星.一種基于RS485總線的網(wǎng)絡(luò)協(xié)議及其實現(xiàn)方法[J].單片機與嵌入式系統(tǒng)應(yīng)用,2003,16(6):13-15.

        [6]余永權(quán).ATMEL 89系列單片機應(yīng)用技術(shù)[M].北京:北京航空航天大學出版社, 2002.

        [7]詹國華.VB6.0環(huán)境下直接利用MSComm控件實現(xiàn)分布式下位機群控制[J].計算機工程,2001,7(5):164-166.

        成人无码免费一区二区三区| 极品美女调教喷水网站| 亚洲av无码国产精品色午夜软件| 东北女人毛多水多牲交视频| 亞洲綜合無碼av一區二區| 青青青国产免A在线观看| 国产成人精品久久二区二区91| 亚洲av无码码潮喷在线观看 | 亚洲国产精品高清一区| 亚洲人成无码网站在线观看| 精品五月天| 日本在线播放不卡免费一区二区| 日韩人妻精品中文字幕专区| 99国产精品无码| 亚洲aⅴ无码日韩av无码网站| 亚洲av性色精品国产| 精品含羞草免费视频观看| 国产国拍精品av在线观看按摩| 日韩国产成人精品视频| 国产精品老女人亚洲av无| 无码国产成人午夜电影在线观看| 丰满多毛的大隂户视频| 日韩精品一区二区三区毛片| 日本亚洲视频免费在线看| 人妻洗澡被强公日日澡电影| 色欲麻豆国产福利精品| 亚洲女同同性少妇熟女| 亚洲国产精品区在线观看| 天下第二社区在线视频| 中文字幕第八页| av在线不卡一区二区三区| 亚洲成av人片不卡无码| 国产99久久亚洲综合精品 | 亚洲国产亚综合在线区| 国产av电影区二区三区曰曰骚网| 五月天无码| 亚洲综合视频一区二区| 亚洲国产天堂久久综合| 一级毛片不卡在线播放免费| 亚洲精品中文字幕码专区| 欧美嫩交一区二区三区|