串口現(xiàn)場(chǎng)評(píng)分系統(tǒng)的研制
1 引言
評(píng)委在現(xiàn)場(chǎng)手寫評(píng)分是體育文藝加試和體育、文藝比賽常用的評(píng)分方式,評(píng)分后,由專人匯總,輸入到計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理和存儲(chǔ),整個(gè)工作流程費(fèi)時(shí)費(fèi)力,尤其在數(shù)據(jù)安全性方面存在隱患,有修改評(píng)分、發(fā)生作弊的可能。本文介紹的串口現(xiàn)場(chǎng)評(píng)分系統(tǒng)由管理主機(jī)和評(píng)分終端分機(jī)組成,具有處理速度快、系統(tǒng)組成簡(jiǎn)單等優(yōu)點(diǎn)。該系統(tǒng)利用RS-232串口實(shí)現(xiàn)PC管理主機(jī)與評(píng)分終端之間的通訊,支持有線和無(wú)線兩種通訊方式,終端機(jī)采用嵌入式單片機(jī)8031作為處理器,利用鍵盤輸入評(píng)分和顯示,并將評(píng)分回送至PC存檔,而PC機(jī)則主要負(fù)責(zé)數(shù)據(jù)庫(kù)的管理和將接收到的評(píng)委評(píng)分利用既定算法處理得到最終結(jié)果用于比賽現(xiàn)場(chǎng)大屏幕顯示,并自動(dòng)存入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)被設(shè)置為只可查詢,不可修改和刪除的只讀方式。整個(gè)過程杜絕了人為接觸數(shù)據(jù)的可能性,確保了數(shù)據(jù)的安全公正,減輕了工作人員的勞動(dòng)強(qiáng)度,其效率和數(shù)據(jù)準(zhǔn)確度明顯提高。
2 硬件系統(tǒng)設(shè)計(jì)
串口現(xiàn)場(chǎng)評(píng)分系統(tǒng)硬件組成框圖如圖1所示。采用模塊化設(shè)計(jì),實(shí)現(xiàn)集中式顯示操作管理,可根據(jù)不同的加試和比賽項(xiàng)目的評(píng)分要求靈活地調(diào)整終端點(diǎn)的數(shù)目和最終結(jié)果的處理算法。整個(gè)系統(tǒng)由PC管理機(jī)和評(píng)分終端兩大部分組成,前者為通用PC機(jī),管理軟件采用VB語(yǔ)言編寫,后者由8031單片機(jī)基本系統(tǒng)、實(shí)時(shí)時(shí)鐘、 LCD顯示、鍵盤、系統(tǒng)地址譯碼電路等組成,兩者通過RS-232串口通訊。除了RS-232串口有線通訊外,在PC主機(jī)和評(píng)分終端機(jī)的RS-232串口上各加入一個(gè)無(wú)線通訊模塊,則可實(shí)現(xiàn)主機(jī)與終端機(jī)之間的無(wú)線連接。
單片機(jī)基本系統(tǒng)。主控芯片選用8031,外部擴(kuò)展64KByte的M27C512,實(shí)際最大可使用容量為48KB,用于存放系統(tǒng)軟件、表格以及常量,足以滿足大型復(fù)雜儀器系統(tǒng)應(yīng)用程序存儲(chǔ)的需要;RAM選用容量為8KByte的6264,用于系統(tǒng)程序運(yùn)行時(shí)臨時(shí)變量的存放和編程調(diào)試的需要,同時(shí)根據(jù)本儀器的特點(diǎn),要求對(duì)于評(píng)委評(píng)分實(shí)現(xiàn)實(shí)時(shí)存儲(chǔ),用于后期的成績(jī)校對(duì),系統(tǒng)設(shè)計(jì)了32KB的EEPROM AT24C256,采用IIC協(xié)議用I/O口模擬實(shí)現(xiàn)IIC協(xié)議的讀寫操作。
實(shí)時(shí)時(shí)鐘。選用Dallas公司串行實(shí)時(shí)時(shí)鐘芯片DS1302,該芯片基于IIC總線協(xié)議,內(nèi)部具有實(shí)時(shí)時(shí)鐘、日歷和用戶可用RAM,時(shí)鐘工作制式可由用戶決定設(shè)置,具有對(duì)備份電池進(jìn)行涓流充電的功能,圖2為硬件電路圖。
顯示模塊和按鍵。選用帶背光點(diǎn)陣型液晶顯示模塊OCM12864,顯示PC機(jī)發(fā)送的考試信息,包括考試項(xiàng)目、考生姓名、參賽號(hào)和系統(tǒng)時(shí)間,以及支持比賽中評(píng)委評(píng)分輸入。顯示模塊8位標(biāo)準(zhǔn)數(shù)據(jù)總線、6條控制線以與CPU實(shí)現(xiàn)總線連接。LCD的控制邏輯由GAL16V8實(shí)現(xiàn)。鍵盤接口電路由HD7279A和 16個(gè)按鍵組成。按鍵用于人機(jī)對(duì)話,包括系統(tǒng)功能擴(kuò)展、系統(tǒng)時(shí)間校準(zhǔn)、評(píng)委評(píng)分輸入等。HD7279A具有SPI串行接口,可同時(shí)驅(qū)動(dòng)8位共陰數(shù)碼管并連接多達(dá)64鍵的鍵盤矩陣,有去抖動(dòng)電路。引腳6 (CS)為片選輸入端,此引腳接低電平,設(shè)置為有效,可向芯片發(fā)送指令及讀取鍵盤數(shù)據(jù);引腳7 (CLK)為同步時(shí)鐘輸入端,與8031的P1.1連接;引腳8 (DATA)為串行數(shù)據(jù)輸入/輸出端,與8031的P1.2連接;
引腳9 (KEY)為按鍵有效輸出端,平時(shí)為高電平,當(dāng)檢測(cè)到有效按鍵時(shí),此引腳變?yōu)榈碗娖?與8031的P1.3連接.引腳10~16(SG~SA)、17(DP)以及18~25(D0~D7)用于擴(kuò)展鍵盤矩陣和LED數(shù)碼管,具體硬件連接如圖3所示。
地址譯碼電路。系統(tǒng)地址譯碼電路由可編程邏輯器件GAL16V8實(shí)現(xiàn),具有簡(jiǎn)單的電路結(jié)構(gòu),能實(shí)現(xiàn)復(fù)雜的地址譯碼和很好的硬件保密性能。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)的設(shè)計(jì)要求是:PC機(jī)部分主要負(fù)責(zé)數(shù)據(jù)庫(kù)管理,終端機(jī)管理和終端機(jī)信息的發(fā)送和接收。數(shù)據(jù)庫(kù)管理,主要針對(duì)下列信息的添加,修改,查詢和刪除。① 用戶信息(分為管理員用戶和一般用戶);②選手信息;③裁判信息;④項(xiàng)目信息;⑤選手成績(jī)信息。終端機(jī)管理,包括終端機(jī)的在線情況查詢、時(shí)間校準(zhǔn)、成績(jī)存儲(chǔ)與清除。終端機(jī)信息發(fā)送和接受,包括項(xiàng)目,參賽選手號(hào)碼,姓名等基本信息的發(fā)送和評(píng)委評(píng)分的接收。終端機(jī)部分負(fù)責(zé)現(xiàn)場(chǎng)評(píng)分。等待主機(jī)發(fā)送比賽資料,確認(rèn)無(wú)誤后,方可進(jìn)行評(píng)分。整個(gè)系統(tǒng)軟件分為PC和終端兩部分,PC端以數(shù)據(jù)庫(kù)技術(shù)作為支撐,采用Visual Basic 6.0 編寫,實(shí)現(xiàn)了項(xiàng)目、評(píng)委、選手等考試信息的管理和查詢,以及上位機(jī)與下位機(jī)的通信功能。而終端部分則采用C51語(yǔ)言編程,遵循自頂向下和逐步細(xì)化的模塊化程序設(shè)計(jì)方法,主要負(fù)責(zé)考試信息的接收和顯示,以及評(píng)委評(píng)分的輸入和回送等。
3.1 PC管理軟件
PC管理軟件采用結(jié)構(gòu)化語(yǔ)言編程VB,主要分為信息管理、用戶管理、成績(jī)管理、終端管理、比賽信息設(shè)置、比賽管理以及幫助7大功能。圖4為主操作界面,編程的主要難點(diǎn)在于通訊控件MSComm和面向數(shù)據(jù)庫(kù)訪問控件Adodc。前者負(fù)責(zé)實(shí)現(xiàn)PC與終端通信,通過對(duì)控件屬性的設(shè)置,可以提高編程效率,簡(jiǎn)化編程,后者是微軟公司提出的最新數(shù)據(jù)訪問技術(shù),它被設(shè)計(jì)用來(lái)同新的數(shù)據(jù)訪問層OLE DB Provider一起協(xié)同工作,以提供通用數(shù)據(jù)訪問,在本設(shè)計(jì)應(yīng)用中,包括對(duì)信息的查詢、刪除和修改,采用SQL(結(jié)構(gòu)化查詢語(yǔ)言)編程,通過SQL完成復(fù)雜的數(shù)據(jù)庫(kù)操作,而無(wú)需考慮如何操作數(shù)據(jù)庫(kù)的底層細(xì)節(jié)。
圖4 PC管理主機(jī)端操作界面
3.2 終端應(yīng)用軟件
終端應(yīng)用軟件包括主程序模塊、LCD顯示模塊、串口中斷服務(wù)模塊、按鍵處理模塊、EEPROM讀寫模塊等。主程序首先關(guān)閉全局中斷,然后進(jìn)行各部件的初始化,包括初始化LCD顯示界面,復(fù)位HD7279A,初始化DS1302和串口,設(shè)置定時(shí)器時(shí)間常數(shù)和工作方式,最后打開串口中斷. 初始化完畢后進(jìn)入循環(huán)刷新時(shí)間顯示和查詢按鍵,一旦檢測(cè)到有效按鍵,即進(jìn)入鍵盤服務(wù)子程序。PC機(jī)與終端機(jī)是通過串口實(shí)現(xiàn)信息交換的,通信的準(zhǔn)確性是系統(tǒng)中必須解決的最關(guān)鍵問題。通信雙方的波特率直接關(guān)系到通信的可靠性與準(zhǔn)確性,考慮到定時(shí)器時(shí)間常數(shù)的計(jì)算準(zhǔn)確性,晶振頻率選擇11.0592MHz。
4無(wú)線通訊的實(shí)現(xiàn)
PC管理機(jī)和評(píng)分終端兩者除了RS-232串口有線通訊外,在兩者的RS-232串口上各加入一個(gè)無(wú)線通訊模塊,則可實(shí)現(xiàn)主機(jī)與終端機(jī)之間的無(wú)線通訊。無(wú)線通訊模塊主要由nRF2401單片射頻收發(fā)芯片構(gòu)成,工作于2.4~2.5GHz ISM頻段,芯片內(nèi)置頻率合成器、功率放大器、晶體振蕩器和調(diào)制器等功能模塊,輸出功率和通信頻道可通過程序進(jìn)行配置。芯片能耗非常低,以-5dBm的功率發(fā)射時(shí),工作電流只有10.5mA,接收時(shí)工作電流只有18mA,多種低功率工作模式,方便節(jié)能設(shè)計(jì)。nRF2401適用于無(wú)線數(shù)據(jù)傳輸系統(tǒng)等多種無(wú)線通信的場(chǎng)合。在本系統(tǒng)中取代原RS-232串口的有線通訊數(shù)據(jù)傳輸。nRF2401內(nèi)置地址解碼器、先入先出堆棧區(qū)、解調(diào)處理器、時(shí)鐘處理器、GFSK濾波器、低噪聲放大器、頻率合成器,功率放大器等功能模塊,需要很少的外圍元件,因此使用起來(lái)非常方便。QFN24引腳封裝,外形尺寸只有5×5mm。 nRF2401的功能模塊如圖5所示。
在本系統(tǒng)中無(wú)線通訊模塊工作在ShockBurstTM收發(fā)模式下,使用片內(nèi)的先入先出堆棧區(qū),數(shù)據(jù)低速?gòu)奈⒖刂破魉腿耄咚?1Mbps)發(fā)射,這樣可以盡量節(jié)能,因此,使用低速的微控制器也能得到很高的射頻數(shù)據(jù)發(fā)射速率。與射頻協(xié)議相關(guān)的所有高速信號(hào)處理都在片內(nèi)進(jìn)行,這種做法有三大好處:盡量節(jié)能;低的系統(tǒng)費(fèi)用(低速微處理器也能進(jìn)行高速射頻發(fā)射);數(shù)據(jù)在空中停留時(shí)間短,抗干擾性高。nRF2401的ShockBurstTM技術(shù)同時(shí)也減小了整個(gè)系統(tǒng)的平均工作電流。
圖5 nRF2401無(wú)線通訊模塊
在ShockBurstTM收發(fā)模式下,nRF2401自動(dòng)處理字頭和CRC校驗(yàn)碼。在接收數(shù)據(jù)時(shí),自動(dòng)把字頭和CRC校驗(yàn)碼移去。在發(fā)送數(shù)據(jù)時(shí),自動(dòng)加上字頭和CRC校驗(yàn)碼,當(dāng)發(fā)送過程完成后,數(shù)據(jù)準(zhǔn)備好引腳通知微處理器數(shù)據(jù)發(fā)射完畢。ShockBurstTM發(fā)射流程使用接口引腳為CE,CLK1,DATA: 當(dāng)微控制器有數(shù)據(jù)要發(fā)送時(shí),其把CE置高,使nRF2401工作;把接收機(jī)的地址和要發(fā)送的數(shù)據(jù)按時(shí)序送入nRF2401; 微控制器把CE置低,激發(fā)nRF2401進(jìn)行ShockBurstTM發(fā)射; nRF2401的ShockBurstTM發(fā)射( 給射頻前端供電; 射頻數(shù)據(jù)打包即添加字頭和CRC校驗(yàn)碼; 高速發(fā)射數(shù)據(jù)包;發(fā)射完成,nRF2401進(jìn)入空閑狀態(tài)。) ShockBurstTM接收流程使用接口引腳CE、DR1、CLK1和DATA(接收通道1):配置本機(jī)地址和要接收的數(shù)據(jù)包大??;進(jìn)入接收狀態(tài),把CE置高;200us后,nRF2401進(jìn)入監(jiān)視狀態(tài),等待數(shù)據(jù)包的到來(lái);當(dāng)接收到正確的數(shù)據(jù)包(正確的地址和CRC校驗(yàn)碼),nRF2401自動(dòng)把字頭、地址和CRC校驗(yàn)位移去;nRF2401通過把DR1(這個(gè)引腳一般引起微控制器中斷)置高通知微控制器;微控制器把數(shù)據(jù)從nRF2401移出;所有數(shù)據(jù)移完,nRF2401把DR1置低,此時(shí),如果CE為高,則等待下一個(gè)數(shù)據(jù)包,如果CE為低,開始其它工作流程。
5 結(jié)束語(yǔ)
串口現(xiàn)場(chǎng)評(píng)分系統(tǒng)是一種基于多機(jī)通訊的分布式應(yīng)用系統(tǒng),既可以工作于有線通訊方式下,也可以工作于無(wú)線通訊方式下,經(jīng)過反復(fù)調(diào)試和在線測(cè)試,使用效果良好,達(dá)到預(yù)期設(shè)計(jì)要求,現(xiàn)已產(chǎn)品化。該系統(tǒng)適用于文藝體育考試的加試、體育藝術(shù)比賽等場(chǎng)合的現(xiàn)場(chǎng)評(píng)分以及考試后的數(shù)據(jù)處理、打印、存檔等工作,明顯提高評(píng)分工作效率和數(shù)據(jù)準(zhǔn)確度,減輕工作人員的勞動(dòng)強(qiáng)度,確保數(shù)據(jù)的安全公正。本系統(tǒng)遵循通用化和模塊化的設(shè)計(jì)思想,對(duì)于類似要求的系統(tǒng),只要稍做修改便可運(yùn)用。其構(gòu)造的通用模塊(如PC管理主機(jī)端數(shù)據(jù)庫(kù)模塊、單片機(jī)軟件模塊)由KeilC51寫成甚至可以直接用于其它的分布式應(yīng)用系統(tǒng)中。
參考文獻(xiàn)
[1] 馬忠梅.單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1997
[2] 胡榮根. VB 6.0數(shù)據(jù)庫(kù)和Internet 編程. 北京:清華大學(xué)出版社,1999
[3] Bitcode Inc.. HD7279 Technical Data. 2001
[4] Dallas Semiconductor Crop.. DS1302 Technical Data. 2000
[5] Microsoft Crop.. Microsoft MSDN Library. 1995-1999