2021-4-9 | 通信技術(shù)
近年來(lái)計(jì)算機(jī)技術(shù)發(fā)展迅速,一些相關(guān)的計(jì)算機(jī)輔助技術(shù)也隨著其發(fā)展而發(fā)展迅速,并且很多的技術(shù)已經(jīng)被逐步地使用到了國(guó)民生產(chǎn)生活的各個(gè)領(lǐng)域中。伴隨著計(jì)算機(jī)技術(shù)在工業(yè)控制領(lǐng)域應(yīng)用,計(jì)算機(jī)與外圍設(shè)備之間的通信控制得到廣泛的應(yīng)用的同時(shí),其作用顯得越來(lái)越重要。本文成功地利用VB建立了基于MSComm控件的兩PC機(jī)之間的串行通訊。本文所作主要工作如下幾點(diǎn):比較詳細(xì)地研究了有關(guān)串行通訊的原理與設(shè)計(jì)的問(wèn)題;設(shè)計(jì)了利用串行通訊實(shí)現(xiàn)兩PC間的數(shù)據(jù)傳輸?shù)南到y(tǒng)圖;學(xué)習(xí)了MSComm控件,并且利用VB開發(fā)出了實(shí)現(xiàn)兩PC間串行通信的程序。本文建立的程序完成了預(yù)定的目標(biāo),從而為企業(yè)局域網(wǎng)內(nèi)的工業(yè)控制流的傳遞、信息的交換提供了一個(gè)較為成熟和完善的平臺(tái),對(duì)于相關(guān)技術(shù)人員和程序開發(fā)人員提供了一定的指導(dǎo)作用。
1基于WIN32API的串行通訊技術(shù)原理
1.1串行口的創(chuàng)建與打開
RS232串行口在WIN32系統(tǒng)可以類比為磁盤上的文件。在WIN32API中可以通過(guò)一個(gè)函數(shù)CreateFile()創(chuàng)建一個(gè)新文件或者打開已有的系統(tǒng)文件,有所區(qū)別的是函數(shù)的參數(shù),當(dāng)“創(chuàng)建方式”這一參數(shù)的值應(yīng)為OPEN_EXISTING表示打開文件。另一方面值得注意的是在串行口文件使用的問(wèn)題,當(dāng)串行口文件“共享模式”的參數(shù)值為0時(shí),串行口為獨(dú)占使用方式,在串口獨(dú)立使用的時(shí)候,其他的應(yīng)用程序不能夠并行,要并行,只有等到串行口的文件使用結(jié)束以后,才能關(guān)閉以便其他的應(yīng)用程序共同使用這個(gè)串口。
1.2串行口的設(shè)置
串行口打開后就會(huì)產(chǎn)生一個(gè)串行口的句子,這個(gè)句子一般是HANDLE類型的變量hComm中存放起來(lái)的,而且對(duì)于hComm對(duì)該串行口實(shí)時(shí)操作時(shí)必須注意串行口的設(shè)置要進(jìn)行初始化,否則很難實(shí)現(xiàn)串口行的操作。這些串口行的操作中要設(shè)置CommProp、CommConfig結(jié)構(gòu)、串口狀態(tài)、串口超時(shí)、標(biāo)志等這些內(nèi)容,而且這些設(shè)置中,以CommProp結(jié)構(gòu)最大最復(fù)雜,其設(shè)置往往要包含最大發(fā)送序列和最大接受序列,所以這個(gè)結(jié)構(gòu)的設(shè)置也是串口配置中最為關(guān)鍵的環(huán)節(jié),而且是串口配置的核心部分內(nèi)容,決定著關(guān)鍵的結(jié)構(gòu)設(shè)置。
一般而言,將DCB結(jié)構(gòu)進(jìn)行初始化的過(guò)程主要是數(shù)據(jù)位數(shù)的定義過(guò)程,首先是對(duì)于每個(gè)字符的數(shù)據(jù)位數(shù)的奇偶、事件字符,停止位數(shù),以及流量控制的方式以及串口發(fā)送的波特率進(jìn)行校驗(yàn)和設(shè)置,然后再是關(guān)注設(shè)置的一些方法,比如在此串口的設(shè)置中,要預(yù)先得到缺省的配置再去修改參數(shù)部分,而且這樣才能夠令下個(gè)環(huán)節(jié)立刻可以將串口當(dāng)前的狀態(tài)進(jìn)行反應(yīng),基帶協(xié)議中帶有分組頭信息,包括了HFC信息與CRC信息,這些信息對(duì)于分組和傳輸過(guò)程中的錯(cuò)誤都能夠有效地進(jìn)行檢驗(yàn),并得到充分的結(jié)果,而且在該基帶協(xié)議中,出于有效載荷正確與否,可以將循環(huán)冗余校驗(yàn)碼進(jìn)行加載,加載的信息進(jìn)行分組,然后在ARQ的方案基礎(chǔ)上,對(duì)分組的荷載進(jìn)行工作和分析。而話音在系統(tǒng)中,因?yàn)橛行У姆纸M頭沒(méi)有保護(hù)措施,所以藍(lán)牙可以得到快速和沒(méi)有編號(hào)的確認(rèn),而且在應(yīng)答前,還要進(jìn)行一次分組,返回過(guò)程一般使用ACK(ARQN=1)或者NAK(ARQN=0)程序,在程序形成的過(guò)程中,還是要進(jìn)行ACK/NACK域的組成,這種組成可以在某個(gè)區(qū)域里才能了解負(fù)載接收,這種接受能夠在區(qū)域里的編碼是不是對(duì)的,并且便于根據(jù)實(shí)際情況,決定是否重新發(fā)送或者發(fā)送到下一個(gè)分組。
MSComm控件提供了使RS-232進(jìn)行數(shù)據(jù)通信的所有協(xié)議,它有兩種處理通信的方式,即事件驅(qū)動(dòng)和查詢方式,本文利用了事件驅(qū)動(dòng)方式,可以滿足工業(yè)用實(shí)時(shí)性的要求。但是這里特別指出的是一個(gè)MSComm控件只能對(duì)應(yīng)一個(gè)串口。假如程序中要用到多個(gè)串口,那么相應(yīng)的就有同等數(shù)量的MSComm控件,但是MSComm控件的數(shù)量并非沒(méi)有限制,一個(gè)程序中對(duì)多只能有16個(gè)MSComm控件。這點(diǎn)是需要注意的。MSComm控件的屬性較多,但是常用的并且與本文設(shè)計(jì)有關(guān)的幾個(gè)重要屬性如表1所示。利用MSComm控件進(jìn)行串口通信的一般步驟為:(1)設(shè)置通信對(duì)象、通信端口以及其它屬性;(2)設(shè)定通信協(xié)議;(3)打開通信端口,進(jìn)行數(shù)據(jù)的傳送;(4)關(guān)閉通信端口。
2線程同步技術(shù)及應(yīng)用實(shí)例
2.1線程同步技術(shù)簡(jiǎn)介
內(nèi)存調(diào)動(dòng)程序開始運(yùn)行之后其身份即變?yōu)閃indows系統(tǒng)中的一個(gè)進(jìn)程,每個(gè)進(jìn)程需要占據(jù)高達(dá)4G的獨(dú)立的一個(gè)內(nèi)存空間,各個(gè)內(nèi)存空間之間無(wú)法越界存取,以免造成保護(hù)性錯(cuò)誤被通知非法操作。一個(gè)進(jìn)程的執(zhí)行效率較低,因此通常分為幾個(gè)線程開展執(zhí)行。藍(lán)牙從一定方面來(lái)說(shuō),是一種近距離數(shù)據(jù)通訊技術(shù),采用無(wú)線的傳輸形式,然而和紅外通訊技術(shù)點(diǎn)對(duì)點(diǎn)的傳輸方式相比,藍(lán)牙可以在10米的距離之內(nèi)實(shí)現(xiàn)一點(diǎn)對(duì)多點(diǎn)的聲音與數(shù)據(jù)傳輸,它的傳輸帶寬能夠達(dá)到1Mbps。目前,這一技術(shù)在進(jìn)行無(wú)線通訊時(shí)是免費(fèi)的,可以大大簡(jiǎn)化筆記本電腦及手機(jī)等終端設(shè)備與互聯(lián)網(wǎng)之間的通信,它采用低能耗的無(wú)線成功實(shí)現(xiàn)諸如視頻、語(yǔ)音及數(shù)據(jù)等傳輸,可以實(shí)現(xiàn)同時(shí)發(fā)送與接收信號(hào)的雙加工,傳輸距離范圍一般在0.1到10米之間,假如采用功率放大器,傳輸?shù)木嚯x最大可以達(dá)到100米。總的來(lái)說(shuō),藍(lán)牙可以實(shí)現(xiàn)一點(diǎn)對(duì)多點(diǎn)的數(shù)據(jù)傳輸,同時(shí)還具有傳輸耗能低、傳輸速率較快、組網(wǎng)簡(jiǎn)單方便及安全性好等優(yōu)點(diǎn),此外,藍(lán)牙最為突出的一個(gè)特點(diǎn)就是能夠在一定的傳輸距離內(nèi)穿透建筑物,且沒(méi)有關(guān)于通訊方向與視角的要求,目前,紅外通訊技術(shù)不僅被廣泛應(yīng)用到臺(tái)式電腦、筆記本電腦及打印機(jī)等外圍設(shè)備上,同時(shí)也廣泛應(yīng)用于電話、相機(jī)、游戲機(jī)、網(wǎng)絡(luò)接入設(shè)備及醫(yī)療工業(yè)設(shè)備等方面。然而藍(lán)牙雖然是一種比較流行的新興的短距離無(wú)線通訊技術(shù),但是目前還沒(méi)有得到廣泛的應(yīng)用,從某種方面來(lái)說(shuō),很多藍(lán)牙設(shè)備目前仍然處在實(shí)驗(yàn)室試驗(yàn)的階段,由于藍(lán)牙具有紅外通訊技術(shù)有的特點(diǎn),換句話來(lái)說(shuō),具有紅外通訊功能的設(shè)備能夠使用藍(lán)牙來(lái)成功實(shí)現(xiàn)無(wú)線連接,此外,藍(lán)牙還具有紅外通訊技術(shù)所沒(méi)有的一些獨(dú)具特色的功能,比如,藍(lán)牙傳輸距離最大可以達(dá)到100米,可以穿透建筑物,可以實(shí)現(xiàn)一點(diǎn)對(duì)多點(diǎn)的傳輸,可以傳輸語(yǔ)音與視頻等數(shù)據(jù)。
2.2多線程通訊技術(shù)應(yīng)用實(shí)例