李佳寧 陳旭
摘 要:本文主要就利用comm.jar開發(fā)包實現(xiàn)Java與單片機全雙工串口通信,對其核心內(nèi)容展開了相關(guān)的分析與探討。首先就Java類和comm.jar開發(fā)包進行了簡要的介紹,而后對于Java讀寫串口的編程實現(xiàn)進行了詳細的闡述,并最終應(yīng)用于Applet或Application程序,經(jīng)過相應(yīng)的調(diào)試手段,最終呈現(xiàn)出了簡化后的代碼實例。
關(guān)鍵詞:comm.jar;Java;單片機;全雙工
DOI:10.16640/j.cnki.37-1222/t.2016.04.181
在計算機通信服務(wù)器的自動化控制系統(tǒng)當(dāng)中,主要將微型機作為控制中心,一般較為常用的數(shù)據(jù)采集方式為通過單片機進行數(shù)據(jù)信息內(nèi)容的采集,而后借助于串行通信的方式發(fā)送給微型機,微型機再將相應(yīng)的控制信息指令發(fā)送至單片機。Java程序語言在面對對象與平臺時,具有分布式與多線程的可靠性與安全性,較為適用于分布式的計算機環(huán)境。因而將Java程序語言應(yīng)用于單片機的通信當(dāng)中,能夠具備極強的實際價值。據(jù)此下文之中將主要就Java類和comm.jar開發(fā)包進行簡要的介紹,并對Java讀寫串口的編程實現(xiàn)進行詳細的分析與探討,具體內(nèi)容如下。
1 Java類和comm.jar開發(fā)包
Java程序語言由語法規(guī)則與類庫兩項內(nèi)容模塊構(gòu)成。類庫模塊是程序當(dāng)中已完成編寫的程序語言,不同的模塊內(nèi)容往往對應(yīng)有不同的功能與任務(wù),因此對于相關(guān)的模塊進行編寫之時,便可以合理的運用適當(dāng)?shù)念悗炷K內(nèi)容。comm.jar開發(fā)包能夠供應(yīng)兩類端口的通信需求,一類為普遍應(yīng)用的串行端口RS- 232- C,另一類則為并行端口IEEE1284,借助于類庫模塊內(nèi)容的支持,能夠即為有效的精簡對串口的操作流程。
實現(xiàn)輸出與輸入功能的基本原理。借助于系統(tǒng)當(dāng)中的Javax.comm.SerialPort程序能夠生成具體的串口目標(biāo)。而能夠進行正常通信的一個最為重要的原因,即為在開發(fā)包當(dāng)中存在一個輸出信息流,向此輸出信息流輸入相應(yīng)的信息流內(nèi)容,能夠極為便捷的進行對串口的操作。Java程序語言對于串口通信的實現(xiàn)原理,即對串口通信通過監(jiān)聽器進行監(jiān)聽,若獲取到相應(yīng)的串口通信情況,并存在具體的實際數(shù)據(jù)內(nèi)容,便能夠進行輸入流的數(shù)據(jù)通信傳輸。
2 Java讀寫串口的編程實現(xiàn)
(1)引用包與定義對象。Java的定義對象內(nèi)容應(yīng)當(dāng)采用static進行定義域的劃分,能夠存儲于公共單元之中,此種程序當(dāng)中的任一程序均可實行范文及糾正。
(2)打開程序。借助于CommPortIdentifier的打開方式,能夠返回到CommPort當(dāng)中。打開方式有兩個數(shù)據(jù)標(biāo)準(zhǔn):一個是string,一般情況下將名稱設(shè)定為所采用的程序名稱;另一個是time,通常代表打開端口是所用到的時間[1]。Catch代表若端口被其他程序內(nèi)容所占據(jù)時,亦或是此端口的操作內(nèi)容不能夠給予相應(yīng)的支持,在系統(tǒng)運行過程當(dāng)中往往會被檢測為異常狀況。
(3)二進制數(shù)據(jù)。借助于getOutputStream能夠獲取到端口當(dāng)中的輸出流,從而便能夠促使串口通信進行數(shù)據(jù)代碼的輸出。
Output為上文之中所定義的輸出流目標(biāo)內(nèi)容;ch表示在通信端口當(dāng)中要輸入進1B的二進制數(shù)據(jù)代碼,數(shù)值為0~260之內(nèi)的整數(shù)值[2]。
(4)二進制數(shù)據(jù)的接收。comm.jar在數(shù)據(jù)輸入當(dāng)中,具備兩類讀取方式[3]。在此之中輪詢監(jiān)聽方式,能夠在計算程序當(dāng)中的各個關(guān)鍵性功能運行指示,借助于對CommEvent屬性值的檢查來進行錯誤代碼的修正。而如若所采用的程序代碼較為簡潔,程序內(nèi)容較少,能夠極大的提升二進制數(shù)據(jù)的接收,在本次研究當(dāng)中采用了監(jiān)聽讀取方式,進行數(shù)據(jù)內(nèi)容的獲取的方式具有程序反映較快、可靠性能強等特點。
3 Java讀寫串口的編程實現(xiàn)實例
通過上文當(dāng)中對于通信程序的代碼處理,能夠?qū)⑵洫毩⒎庋b為同一個類型[4],應(yīng)用于Applet或Application程序,經(jīng)過相應(yīng)的調(diào)試手段,最終呈現(xiàn)出簡化后的代碼實例如下所示:
4 結(jié)束語
對于comm.jar開發(fā)包的實現(xiàn)與Java與單片機全雙工串口通信,此兩者的基礎(chǔ)性理論概念進行了分析與探討,而后就此提出了一些相應(yīng)的程序?qū)嵗嵗赏ㄟ^Windows 2000+ Java SDK 1.4進行編譯,同時能夠同AT89C51實現(xiàn)信息互通。此通信程序與同類的通信程序相對比而言,語言邏輯的表達更加簡潔清晰,在實際的編程過程當(dāng)中應(yīng)用效率較強,且易于日常維護,因此具有一定的實用價值。
參考文獻:
[1]侯延風(fēng),徐俊峰,談雯等.多任務(wù)、全雙工串口通信的Visual Basic實現(xiàn)[J].武漢水利電力大學(xué)學(xué)報,2013(06).
[2]邢文生,李希臣,李泉溪等.Java Applet與單片機串口通訊的實現(xiàn)[J].河南科學(xué),2012(06).
[3]趙學(xué)軍.基于單片機通用引腳的軟件UART設(shè)計[J].微計算機信息,2014(02).
[4]趙建強,黃華,王蕓等.基于PC機RS-232串口的無線數(shù)字傳輸組網(wǎng)系統(tǒng)[J].四川大學(xué)學(xué)報(自然科學(xué)版),2013(z1).
作者簡介:李佳寧(1993-),男,廣東興寧人,大專,研究方向:通信技術(shù)。