余超劍 楊明 萬友銘
摘 要: 設(shè)計(jì)了一款基于MicroBlaze嵌入式平臺(tái),利用無線藍(lán)牙通信技術(shù)實(shí)現(xiàn)Android智能手機(jī)控制的五子棋對(duì)戰(zhàn)游戲系統(tǒng),該系統(tǒng)由XC7A100T-1CSG324C芯片、HC-5藍(lán)牙模塊以及顯示器組成。結(jié)果表明:該系統(tǒng)操作方便和可靠性強(qiáng),具有一定的應(yīng)用前景。
關(guān)鍵詞: MicroBlaze嵌入式平臺(tái); 藍(lán)牙; Android; 五子棋
中圖分類號(hào): TN 929.5 文獻(xiàn)標(biāo)志碼: A 文章編號(hào): 1671-2153(2016)03-0086-04
0 引 言
隨著物聯(lián)網(wǎng)和游戲產(chǎn)業(yè)的快速發(fā)展和智能手機(jī)的不斷普及,目前工業(yè)和民用的很多串口設(shè)備連接上了手機(jī),以便通過智能手機(jī)對(duì)串口設(shè)備實(shí)現(xiàn)高效的信息交互,然而傳統(tǒng)方式的構(gòu)建比較復(fù)雜,具有施工成本高、不易擴(kuò)展的缺點(diǎn)。本文提出一種基于MicroBlaze嵌入式平臺(tái)和藍(lán)牙無線通信技術(shù)的五子棋對(duì)戰(zhàn)游戲的設(shè)計(jì)方案,通過基于XC7A100T-1CSG324C芯片和Android智能手機(jī)的無線通信,再結(jié)合藍(lán)牙無線通信技術(shù),可以實(shí)現(xiàn)在顯示器上進(jìn)行五子棋對(duì)戰(zhàn)游戲。
1 總體設(shè)計(jì)
為了提高藍(lán)牙五子棋對(duì)戰(zhàn)系統(tǒng)的靈活性和可擴(kuò)展性,使藍(lán)牙無線控制更加模塊化,本系統(tǒng)以XC7A100T-1CSG324C芯片為核心,將無線藍(lán)牙與串口融合,并與智能手機(jī)相連接,極大地拓寬了串口功能。
系統(tǒng)的功能結(jié)構(gòu)如圖1所示。系統(tǒng)中XC7A100T-1CSG324C芯片一方面通過HC-5藍(lán)牙模塊與Android智能手機(jī)進(jìn)行數(shù)據(jù)通信;另一方面,通過串口方式與HC-5藍(lán)牙模塊保持?jǐn)?shù)據(jù)通信。當(dāng)藍(lán)牙模塊建立與智能手機(jī)的連接后,帶有藍(lán)牙通信功能的控制終端加入通信網(wǎng)絡(luò),這樣就保證了Android智能手機(jī)將五子棋的控制命令先由無線藍(lán)牙方式發(fā)送至HC-5藍(lán)牙模塊,然后通過XC7A100T-1CSG324C芯片所支持的無線藍(lán)牙與串口之間的透傳功能,將收到的數(shù)據(jù)通過串口傳輸至XC7A100T-1CSG324C芯片,并最終通過無線藍(lán)牙通信方式實(shí)現(xiàn)對(duì)五子棋對(duì)戰(zhàn)游戲系統(tǒng)的控制。
2 系統(tǒng)的硬件設(shè)計(jì)
2.1 Xilinx IP核的模塊硬件設(shè)計(jì)
MicroBlaze是由Xilinx公司推出的一款32位RISC微處理器 IP 核,具有很高的可配置度,可以將外部存儲(chǔ)器、液晶顯示屏、PS/2口、串口、以太網(wǎng)控制器等外部設(shè)備連接在一起并協(xié)調(diào)它們的工作,因此非常適合設(shè)計(jì)針對(duì)網(wǎng)絡(luò)、電信、數(shù)據(jù)通信等應(yīng)用背景的復(fù)雜嵌入式系統(tǒng)[3-4]。
XC7A100T-1CSG324C是Artix-7系列中資源比較豐富的一款芯片。XC7A100T-1CSG324C采用了Chip scale封裝,板載的Artix-7 FPGA資源非常豐富。圖2為系統(tǒng)硬件電路原理。圖2中,HC-5藍(lán)牙模塊與XC7A100T-1CSG324C芯片擴(kuò)展接口相連實(shí)現(xiàn)串口通信,使用兩個(gè)Uart IP核,用于XC7A100T-1CSG324C芯片與智能手機(jī)藍(lán)牙連接,串口傳送數(shù)據(jù);plb_v46_0 IP核,用于連接EMC顯存控制器及TFT IP核;EMC IP核,用于控制顯示數(shù)據(jù)的存儲(chǔ);AXI?鄄PLB Bridge IP核,用于連接AXI總線與PLB總線;TFT IP核,用于控制VGA接口,使顯示器顯示五子棋界面[1]。
2.2 HC-5藍(lán)牙模塊
HC-5是一款功能強(qiáng)大的串口藍(lán)牙模塊,藍(lán)牙芯片是CSR公司的主流芯片BC417143,支持藍(lán)牙的V2.0的協(xié)議標(biāo)準(zhǔn),藍(lán)牙芯片上提供UART接口、SPI接口、PCM接口、PIO接口,工作電壓為3.3 V,串口波特率支持多重選擇,默認(rèn)是9600位/s。藍(lán)牙芯片與藍(lán)牙主機(jī)通過串口進(jìn)行通信,同時(shí)藍(lán)牙芯片也可通過串口與PC機(jī)通信,PC機(jī)可通過AT指令對(duì)藍(lán)牙芯片進(jìn)行控制[5]。
3 系統(tǒng)的軟件設(shè)計(jì)
軟件系統(tǒng)設(shè)計(jì)如圖3所示。圖3中,主要包括硬件和軟件接口,棋盤邏輯與IO,以及盤面圖像繪制過程。
3.1 硬件和軟件接口的構(gòu)建
Bluetooth模塊每次通過HC-5發(fā)送一個(gè)字節(jié),存入GPIO的緩沖中。Driver模塊在探測(cè)到中斷后,使用回調(diào)函數(shù)讀取其緩沖,并且翻譯成對(duì)應(yīng)輸入。以下為翻譯藍(lán)牙指令的關(guān)鍵代碼:
byte = XUartLite_RecvByte(XPAR_UARTLITE_0_BASEADDR);
input = XParseByte(byte);
當(dāng)Driver最終得到Painter返回的目標(biāo)圖形bit塊時(shí),便會(huì)將其翻譯成對(duì)應(yīng)顏色,并且存入對(duì)應(yīng)的TFT緩沖。以下為存入緩沖區(qū)的關(guān)鍵代碼:
Xil_Out32(TFT_FRAME_ADDR + pixelOffset, color);
系統(tǒng)并沒有高性能的要求,故無需采用緩沖切換技術(shù)。
3.2 棋局邏輯與IO的構(gòu)建
本棋局系統(tǒng)為全功能子系統(tǒng),負(fù)責(zé)棋局IO、邏輯和繪制。本系統(tǒng)為上層提供了極為簡單的API,一切與棋局邏輯相關(guān)的操作均被封裝,故可以輕松將藍(lán)牙串口輸入直接導(dǎo)向本系統(tǒng)[2]。棋局系統(tǒng)API的關(guān)鍵代碼為
Gomoku_Initialize();
Gomoku_Tick(input);
InputParse模塊負(fù)責(zé)將合法的輸入流通過表驅(qū)動(dòng)轉(zhuǎn)化為控制標(biāo)識(shí),導(dǎo)入內(nèi)部棋局邏輯模塊。Control模塊會(huì)根據(jù)控制標(biāo)識(shí)啟用不同的控制工作流。當(dāng)控制工作完成后,Logic模塊還會(huì)自動(dòng)檢查棋局是否已經(jīng)結(jié)束。以下為控制關(guān)鍵代碼:
validateInput(input);
controlSignal = parseInput(input);
doControl(controlSignal);
checkWin(controlSignal);
同時(shí)用Logic模塊的棋盤信息流引導(dǎo)Painter模塊進(jìn)行繪制。最后繪圖模塊向上層調(diào)用方輸出圖像緩存。以下為繪圖調(diào)用關(guān)鍵代碼:
paintBoard(graph, chessBoard);
3.3 盤面圖像繪制過程的構(gòu)建
本繪圖子系統(tǒng)Painter適用于不含有著色器等硬件加速功能的硬件圖形系統(tǒng),其采用單緩沖降低RAM消耗。繪圖系統(tǒng)與棋盤邏輯隔離,只提供繪圖接口,將傳入緩沖區(qū)繪制成目標(biāo)圖形。以下為繪制順序關(guān)鍵代碼:
paintGrid(pGraph);
paintChessman(pGraph, pChessBoard);
paintCursor(pGraph, pCursor);
paintWinInidicator(pGraph);
圖像像素為黑白二色,存儲(chǔ)為單個(gè)比特(bit)以減少資源需求。當(dāng)收到調(diào)用方的繪制指令時(shí),系統(tǒng)首先清除盤面,隨后根據(jù)盤面>棋子>指針的順序繪制。如果棋局結(jié)束,則清除版面中部并且繪制棋局信息。
版面中所有特殊圖形,如棋子等均存儲(chǔ)為點(diǎn)陣圖,即二維單比特(bit)數(shù)組,需要時(shí)將其復(fù)制到棋盤上指定的位置。
4 測(cè)試方法及結(jié)果
驗(yàn)證智能手機(jī)能夠正常控制棋盤上棋子。
(I) 在智能手機(jī)客戶端安裝藍(lán)牙串口助手軟件,手機(jī)上控制界面如圖4所示,然后將HC-5藍(lán)牙模塊加電啟動(dòng),將智能手機(jī)與藍(lán)牙模塊配對(duì)。
(II) XC7A100T-1CSG324C芯片VGA接口連上顯示器。
(III) 手機(jī)與藍(lán)牙模塊配對(duì)成功后,通過發(fā)送字符串(字符串及功能如表1所示),控制棋盤上的光標(biāo)上下左右移動(dòng)或放下棋子,雙方對(duì)戰(zhàn)。
(IV) 系統(tǒng)將自動(dòng)判斷黑白棋玩家的輸贏并加以顯示,如圖5所示。
5 結(jié) 論
本文基于MicroBlaze嵌入式平臺(tái),提出了一種藍(lán)牙五子棋對(duì)戰(zhàn)游戲系統(tǒng)的解決方案,設(shè)計(jì)了以XC7A100T-1CSG324C芯片為核心,結(jié)合藍(lán)牙模塊之間的通信,實(shí)現(xiàn)了Android智能手機(jī)終端進(jìn)行無線控制五子棋對(duì)戰(zhàn)系統(tǒng)。運(yùn)行結(jié)果表明:基于MicroBlaze嵌入式平臺(tái)的藍(lán)牙五子棋對(duì)戰(zhàn)系統(tǒng)具有通信可靠、抗干擾性好等優(yōu)點(diǎn)。
參考文獻(xiàn):
[1] 左冬紅. 計(jì)算機(jī)組成原理與接口技術(shù)—實(shí)驗(yàn)教程[M]. 北京:清華大學(xué)出版社,2014:263-280.
[2] BJARNE S. C++程序設(shè)計(jì)語言[M]. 裘宗燕譯. 北京:機(jī)械工業(yè)出版社,2010:63-94.
[3] 龍霞飛,李仁發(fā). Microblaze微處理器IP Core的結(jié)構(gòu)及應(yīng)用[J]. 微處理機(jī),2004(6):6-9.
[4] 阮芳,馮永新. 基于Xilinx MicroBlaze的嵌入式I/O系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子器件,2008(2):626-630.
[5] 張群,楊絮,張正言,等. 藍(lán)牙模塊串口通信的設(shè)計(jì)與實(shí)現(xiàn)[J]. 實(shí)驗(yàn)室研究與探索,2012(3):79-82.
Abstract: System is designed based on MicroBlaze embedded platform, realize the android smartphone controlusing by Bluetooth wireless communication technology. The system is composed of XC7A100T-1CSG324C chip,HC-5 Bluetooth module and standard output monitor. The experimental results demonstrated that system is easy to operateand, high reliability and has a good application prospect.
Keywords: MicroBlaze embedded platform; Bluetooth; Android; Gomoku
(責(zé)任編輯:徐興華)