董國鋼
(長治職業(yè)技術(shù)學(xué)院,山西 長治 046000)
我國現(xiàn)代工業(yè)的不斷進(jìn)步,使通信系統(tǒng)的結(jié)構(gòu)變得愈發(fā)精密,通信數(shù)據(jù)的處理規(guī)模不斷擴(kuò)大。由于單片機(jī)通信系統(tǒng)在數(shù)據(jù)處理能力上存在限制,難以滿足系統(tǒng)控制要求,因此人們將目光逐漸轉(zhuǎn)移至分布式系統(tǒng)。分布式系統(tǒng)在收集通信數(shù)據(jù)過程中,主要是利用下位機(jī)來實(shí)現(xiàn)的,而上位機(jī)則可用于對(duì)收集數(shù)據(jù)的分析與處理。考慮到單片機(jī)的成本較低,能夠提高通信系統(tǒng)的可靠性,因此單片機(jī)被廣泛應(yīng)用于工業(yè)生產(chǎn)與控制中,在分布式控制系統(tǒng)中,其下位機(jī)的核心便是單片機(jī)。不過,因計(jì)算機(jī)在數(shù)據(jù)處理能力方面非常突出,而且可進(jìn)行良好的人機(jī)交互,因此在分布式控制系統(tǒng)中經(jīng)常將計(jì)算機(jī)作為上位機(jī)。在計(jì)算機(jī)單片機(jī)通信系統(tǒng)中,其采用串口通信方式來實(shí)現(xiàn)計(jì)算機(jī)與單片機(jī)之間的數(shù)據(jù)通信,為了使通信數(shù)據(jù)更加直觀、形象,在計(jì)算機(jī)中還要安裝Labview軟件來對(duì)數(shù)據(jù)流進(jìn)行圖形化編程,這樣能夠最大限度地提高計(jì)算機(jī)單片機(jī)通信系統(tǒng)的人機(jī)交互功能。鑒于此,以下便對(duì)計(jì)算機(jī)單片機(jī)通信系統(tǒng)的軟硬件結(jié)構(gòu)設(shè)計(jì)進(jìn)行深入的探討。
在計(jì)算機(jī)單片機(jī)通信系統(tǒng)中,其硬件結(jié)構(gòu)主要包括上位機(jī)與下位機(jī)兩個(gè)部分,其中上位機(jī)采用計(jì)算機(jī),其主要用于對(duì)數(shù)據(jù)進(jìn)行發(fā)送和接收,以此實(shí)現(xiàn)人與通信系統(tǒng)之間的交互。而在下位機(jī)中則以單片機(jī)為核心,下位機(jī)可利用通信串口來對(duì)數(shù)據(jù)進(jìn)行傳輸。計(jì)算機(jī)單片機(jī)的最小系統(tǒng)主要由單片機(jī)、電容、晶振和電阻所組成,對(duì)于最小系統(tǒng)來說,其以MXA232芯片來引出DB9串行端口,以便于單片機(jī)能夠通過DB9串行端口將通信數(shù)據(jù)發(fā)送給TXD與計(jì)算機(jī),同時(shí)單片機(jī)還能利用DB9串行端口接收RXD的連接請(qǐng)求,單片機(jī)通過DB89串口對(duì)計(jì)算機(jī)與RXD的串口連接進(jìn)行接收,并利用I/O引腳將計(jì)算機(jī)與RXD進(jìn)行連接。
在計(jì)算機(jī)單片機(jī)通信系統(tǒng)中,其主控機(jī)中的核心便是計(jì)算機(jī),通過主控機(jī)可以對(duì)下位機(jī)中的單片機(jī)進(jìn)行控制,可以說,主控機(jī)是整個(gè)通信系統(tǒng)中的通信核心,利用主控機(jī)可對(duì)下位機(jī)發(fā)送的通信數(shù)據(jù)進(jìn)行高效的存儲(chǔ)與處理。計(jì)算機(jī)單片機(jī)通信系統(tǒng)中主控機(jī)與下位機(jī)之間的通信程序則需要通過Labview來編寫。在該通信系統(tǒng)中的下位機(jī)則是通過單片機(jī)來對(duì)工業(yè)現(xiàn)場(chǎng)中的各類監(jiān)控對(duì)象進(jìn)行實(shí)時(shí)檢測(cè)與控制的,以此確保各類監(jiān)控對(duì)象的正常運(yùn)行,而對(duì)于這些監(jiān)控對(duì)象的實(shí)時(shí)檢測(cè)與控制程序則需要利用相應(yīng)的匯編語言來編寫。為了使計(jì)算機(jī)單片機(jī)通信系統(tǒng)在運(yùn)行過程中具有更高的可靠性,需要通信系統(tǒng)中的上位機(jī)與下位機(jī)在通信過程中能夠按照相應(yīng)的協(xié)議來進(jìn)行,該協(xié)議也是上位機(jī)與下位機(jī)所必須遵守的。例如,在通信協(xié)議中需要規(guī)定出通信數(shù)據(jù)在傳輸過程中應(yīng)采用的格式、波特率、在校驗(yàn)數(shù)據(jù)時(shí)應(yīng)采用的格式等。在該通信系統(tǒng)中,其在傳輸通信數(shù)據(jù)時(shí)所采用的格式是11bit,并通過RS-232來進(jìn)行異步通信。
在計(jì)算機(jī)單片機(jī)通信系統(tǒng)中,其主函數(shù)程序的實(shí)施流程主要包括四個(gè)步驟,第一步是初始化液晶,第二步是初始化串口,第三步是液晶清屏,第四步是空循環(huán)。而其通信串口的中斷函數(shù)實(shí)施程序流程則包括七個(gè)步驟,第一步是關(guān)閉總中斷,第二步是判斷數(shù)據(jù)是否起始與終止標(biāo)志,第三步是數(shù)據(jù)存入數(shù)據(jù)組,第四步是判斷是否為終止標(biāo)志位;第五步是判斷網(wǎng)數(shù)據(jù)標(biāo)號(hào)是否為零復(fù)位顯示標(biāo)志,如果是,則進(jìn)行第六步,即顯示程序顯示數(shù)組字串清零顯示標(biāo)志位,第七步是開啟總中斷。在主函數(shù)程序與中斷函數(shù)程序的實(shí)施步驟中,其參數(shù)設(shè)置均按照上位機(jī)中的參數(shù)進(jìn)行設(shè)置,例如波特率、奇偶校驗(yàn)等參數(shù),然后判斷語句來去除標(biāo)識(shí)位,以此實(shí)現(xiàn)對(duì)上位機(jī)數(shù)據(jù)的全方位解析,在解析數(shù)據(jù)后便可通過串口緩存區(qū)將其寫入寄存器。為了使通信數(shù)據(jù)能夠在液晶顯示屏中進(jìn)行顯示,還要在設(shè)計(jì)液晶驅(qū)動(dòng)時(shí)設(shè)置其寫指令、數(shù)據(jù)等時(shí)序,然后將液晶顯示時(shí)序與串口通信進(jìn)行匹配。由于液晶在顯示數(shù)據(jù)時(shí)會(huì)存在一定的滯后,而串口通信在收發(fā)數(shù)據(jù)方面的速度較快,因此在液晶顯示屏中難以對(duì)數(shù)據(jù)中的某個(gè)字節(jié)進(jìn)行接收與處理,因此在接收數(shù)據(jù)過程中,需要利用中斷方式來將該數(shù)據(jù)在另外數(shù)組中進(jìn)行展現(xiàn)。
在計(jì)算機(jī)單片機(jī)通信系統(tǒng)中,其串行通信節(jié)點(diǎn)共有五個(gè),這些串行通信節(jié)點(diǎn)分別具有不同的功能,其功能主要體現(xiàn)在設(shè)置串口、檢測(cè)串口緩存、串口寫、串口讀以及中斷等,這些串行通信節(jié)點(diǎn)都可設(shè)置在功能模板中的I/O子模板內(nèi)。在對(duì)這些串口通信節(jié)點(diǎn)進(jìn)行使用時(shí),其過程較為簡(jiǎn)單,而且理解起來也較為容易,為此,本文便對(duì)這些串行通信節(jié)點(diǎn)的具體使用、功能以及相關(guān)定義進(jìn)行介紹。首先,在初始化方面,串行通信節(jié)點(diǎn)需要設(shè)計(jì)停止位、數(shù)據(jù)位、廳偶校驗(yàn)位以及波特率等,通信系統(tǒng)可利用計(jì)算機(jī)來使用串口儀器設(shè)備,在對(duì)串口通信節(jié)點(diǎn)進(jìn)行使用之前,還要配置串口,這樣才能使計(jì)算機(jī)單片機(jī)通信系統(tǒng)得以正常通信。其次,在串口寫方面,串行通信節(jié)點(diǎn)主要負(fù)責(zé)將通信數(shù)據(jù)傳輸至串口的輸出緩存之中。再次,在對(duì)串口中通信數(shù)據(jù)的緩存字節(jié)數(shù)進(jìn)行檢測(cè)時(shí),需要利用串行通信節(jié)點(diǎn)對(duì)串口輸入緩存內(nèi)的現(xiàn)有字節(jié)數(shù)進(jìn)行檢測(cè),然后對(duì)serial port read節(jié)點(diǎn)進(jìn)行制定,利用串口輸入緩存來讀取字節(jié)數(shù),進(jìn)而確保通信系統(tǒng)能夠讀取所有的緩存數(shù)據(jù)。在串口讀方面,串行通信節(jié)點(diǎn)可利用串口緩存來對(duì)各個(gè)端口的讀取數(shù)據(jù)長度進(jìn)行制定。最后,在串行通信設(shè)計(jì)上,主要包括以下步驟:首先計(jì)算機(jī)與單片機(jī)分別需要對(duì)端口進(jìn)行初始化設(shè)置,然后由計(jì)算機(jī)進(jìn)行串口寫,然后進(jìn)行串口讀,在串口寫過程中,需要利用單片機(jī)對(duì)串口的輸入緩存字節(jié)數(shù)進(jìn)行監(jiān)測(cè),然后由單片機(jī)進(jìn)行串口讀,并獲得串口信息反饋信息,串口信息反饋信息共同由計(jì)算機(jī)進(jìn)行串口讀,最后結(jié)束。
在計(jì)算機(jī)單片機(jī)通信系統(tǒng)中,其開發(fā)環(huán)境需要采用Labview來實(shí)現(xiàn),由Labview對(duì)開發(fā)環(huán)境中的通信程序進(jìn)行編寫,在設(shè)計(jì)時(shí)主要包括三個(gè)方面,分別是程序板、框圖程序以及程序調(diào)試。通過對(duì)前面板進(jìn)行設(shè)計(jì),可使通信系統(tǒng)生成良好的人機(jī)交互界面,以便于用戶通過操作控件來進(jìn)行各種功能的操作,同時(shí)也有助于設(shè)計(jì)各類輸入?yún)?shù),進(jìn)而使輸入量指示器得到合理的設(shè)計(jì),使通信數(shù)據(jù)能夠順利在通信系統(tǒng)中進(jìn)行顯示。在對(duì)框圖程序進(jìn)行設(shè)計(jì)時(shí),其目的在于更好的設(shè)計(jì)通信系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)、連線以及端口的程序。以下便對(duì)計(jì)算機(jī)單片機(jī)通信系統(tǒng)的通信程序進(jìn)行分析。
結(jié)合計(jì)算機(jī)單片機(jī)通信系統(tǒng)的設(shè)計(jì)要求,在設(shè)計(jì)前面板時(shí),需要采用DDS信號(hào)源掃頻模式,使前面板能夠在窗口中對(duì)控件板數(shù)值進(jìn)行添加,以便于利用控件來進(jìn)行輸入、按鈕、開關(guān)等控制操作,通過DDS信號(hào)源掃頻模式可對(duì)掃描步進(jìn)、頻率截止、起始掃描以及掃描周期等的數(shù)值進(jìn)行精確設(shè)置,從而使通信系統(tǒng)能夠完成對(duì)通信數(shù)據(jù)的控制。通信系統(tǒng)可調(diào)整按鈕形狀、控制量精度、位置及名稱等,并利用控件選板將資源名稱控件添加至I/O口中,進(jìn)而使通信系統(tǒng)中的主要串口通信設(shè)備得以正確安裝。依據(jù)信號(hào)種類的不同,在該通信系統(tǒng)的前面板設(shè)計(jì)中可以采取多種工作模式,如跳頻工作模式、單頻工作模式等,這樣可使計(jì)算機(jī)單片機(jī)通信系統(tǒng)在操作上變得更加便捷。
在對(duì)計(jì)算機(jī)單片機(jī)通信系統(tǒng)中的框圖程序進(jìn)行設(shè)計(jì)時(shí),需要將能夠滿足框圖要求的節(jié)點(diǎn)圖標(biāo)添加至框圖的窗口面板之中,然后利用端口將節(jié)點(diǎn)圖標(biāo)和端子進(jìn)行相互連接,此時(shí)便需要通過單片機(jī)來控制AD芯片的寄存幅度、駐留時(shí)間、頻率、步埋等,以此確保單片機(jī)能夠?qū)⒆中畔l(fā)送至寄存器中進(jìn)行寄存。利用Labview對(duì)計(jì)算機(jī)單片機(jī)通信系統(tǒng)進(jìn)行設(shè)計(jì)時(shí),需要利用前面板對(duì)DDS信號(hào)源掃頻模式中的掃頻步進(jìn)、掃頻周期、起始頻率以及截止頻率等通過運(yùn)算轉(zhuǎn)換,使其從原有的十進(jìn)制數(shù)據(jù)轉(zhuǎn)化為對(duì)應(yīng)的十六進(jìn)制數(shù)值,然后便可通過VISA寫入函數(shù)的調(diào)用,使緩沖區(qū)中寄存的十六進(jìn)制數(shù)據(jù)利用設(shè)備或接口寫入到VISA資源名稱之中,最后將其發(fā)送至單片機(jī)之中。
對(duì)于計(jì)算機(jī)單片機(jī)通信系統(tǒng)來說,其軟硬件結(jié)構(gòu)中的功能模塊開發(fā)需要通過VB、VC等語言來編寫??紤]到利用VB、VC等語言來對(duì)功能模塊中的程序進(jìn)行開發(fā)時(shí),需要涉及API函數(shù)編程,而API函數(shù)的編程是非常繁瑣的,并且在采用文本語言進(jìn)行編寫時(shí)也往往比較復(fù)雜,需要花費(fèi)很長的時(shí)間才能使程序得以開發(fā)完成。因此,在對(duì)計(jì)算機(jī)單片機(jī)通信系統(tǒng)中功能模塊的程序進(jìn)行編寫時(shí),以此順利完成其串口通信程序的開發(fā),就必須要通過Labview來對(duì)各個(gè)功能模塊的串口通信程序進(jìn)行圖形化編程,Labview作為圖形化編程中的重要工具,其可以在圖形功能模塊中實(shí)現(xiàn)對(duì)高級(jí)語言函數(shù)的封裝,并通過對(duì)各個(gè)圖標(biāo)進(jìn)行連接,從而使各個(gè)功能模塊能夠?qū)崿F(xiàn)串口通信程序的相互傳遞,這樣既可簡(jiǎn)化編程環(huán)節(jié),而且也能夠進(jìn)行直接使用,不需進(jìn)行繁瑣而復(fù)雜的API函數(shù)編程,能夠節(jié)約大量的開發(fā)時(shí)間。
在計(jì)算機(jī)單片機(jī)通信系統(tǒng)中,在調(diào)用VIS時(shí),需要對(duì)串口參數(shù)進(jìn)行設(shè)置,這些串口參數(shù)主要包括以下內(nèi)容:首先要對(duì)通信串口的數(shù)據(jù)傳輸比特率及位數(shù)進(jìn)行設(shè)置,此外還要對(duì)串口號(hào)進(jìn)行設(shè)置。在對(duì)通信數(shù)據(jù)進(jìn)行設(shè)置時(shí),需要對(duì)其位數(shù)、停止位、奇偶檢驗(yàn)以及數(shù)據(jù)流量控制進(jìn)行設(shè)置。在利用VIS對(duì)通信串口進(jìn)行調(diào)用,以此實(shí)現(xiàn)通信系統(tǒng)的數(shù)據(jù)傳輸功能時(shí),需要檢查通信串口在初始化過程中是否有問題,如果通信串口能夠順利進(jìn)行初始化,便可利用該通信串口來對(duì)數(shù)據(jù)進(jìn)行接收與發(fā)送。當(dāng)不需要利用通信串口來接收與發(fā)送通信數(shù)據(jù)時(shí),便可調(diào)用VIS來中斷該通信串口的對(duì)話。在對(duì)VIS進(jìn)行調(diào)用時(shí),具體流程主要包括四個(gè)步驟:第一步是將儀器資源打開;第二步是對(duì)儀器進(jìn)行寫操作;第三步是對(duì)儀器緩存進(jìn)行讀操作;第四步是關(guān)閉儀器資源。
計(jì)算機(jī)單片機(jī)通信系統(tǒng)的軟硬件結(jié)構(gòu)設(shè)計(jì)需要通過Labview來對(duì)系統(tǒng)中的串口通信進(jìn)行設(shè)計(jì),可以說,Labview是計(jì)算機(jī)單片機(jī)通信系統(tǒng)中通信功能能否得以順利實(shí)現(xiàn)的關(guān)鍵所在。通過對(duì)計(jì)算機(jī)單片機(jī)通信系統(tǒng)的運(yùn)行情況進(jìn)行調(diào)試,在調(diào)試過程中利用上位機(jī)將數(shù)據(jù)發(fā)送給單片機(jī),并由單片機(jī)將接收到的數(shù)據(jù)返回至上位機(jī)中,通過液晶顯示屏來顯示該數(shù)據(jù),從而確保計(jì)算機(jī)單片機(jī)通信系統(tǒng)的穩(wěn)定運(yùn)行。
總而言之,對(duì)于計(jì)算機(jī)單片機(jī)通信系統(tǒng)來說,要想實(shí)現(xiàn)其通信功能,需要利用Labview來進(jìn)行串口通信開發(fā),通過Labview來進(jìn)行圖形化編程,使虛擬儀器程序的開發(fā)程序大大提高。同時(shí),借助于計(jì)算機(jī)中的網(wǎng)絡(luò)功能還可提高通信系統(tǒng)的開發(fā)速度。通過對(duì)計(jì)算機(jī)單片機(jī)通信系統(tǒng)的軟硬件結(jié)構(gòu)進(jìn)行調(diào)試,可使計(jì)算機(jī)單片機(jī)通信系統(tǒng)實(shí)現(xiàn)其實(shí)時(shí)通信功能,同時(shí)還可使系統(tǒng)通信變得更加精準(zhǔn)。
遼寧經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院遼寧經(jīng)濟(jì)管理干部學(xué)院學(xué)報(bào)2020年1期