趙春美 彭忠全 江西應(yīng)用科技學(xué)院
在線調(diào)試的串口通信協(xié)議測(cè)試方法研究
趙春美 彭忠全 江西應(yīng)用科技學(xué)院
本次研究中探究了如何進(jìn)行串口通信協(xié)議測(cè)試的在線調(diào)試方法,應(yīng)用某型數(shù)據(jù)傳輸數(shù)字地圖子系統(tǒng)中數(shù)字地圖生成模塊軟件中的通信協(xié)議作為案例進(jìn)行測(cè)試,應(yīng)用了兩種不同的在線調(diào)試串口通訊協(xié)議的方法。將兩種方法應(yīng)用于串口通訊協(xié)議調(diào)試中,能夠較為簡(jiǎn)便的解決在某些測(cè)試環(huán)節(jié)中無(wú)法進(jìn)行窗口在線調(diào)試的情況,為軟件測(cè)試領(lǐng)域的在線調(diào)試技術(shù)提供幫助和參考。
在線調(diào)試 串口通信 方法研究
串口通信的本質(zhì)屬于按位傳輸數(shù)據(jù)通信方式,這種方式應(yīng)用較為廣泛,其硬件設(shè)施簡(jiǎn)便,及調(diào)試過(guò)程也較為簡(jiǎn)單,主要應(yīng)用于我國(guó)工業(yè)控制領(lǐng)域。但是就目前來(lái)說(shuō),部分軟件測(cè)試環(huán)境中,兩個(gè)配置項(xiàng)之間的通訊窗口無(wú)法外接串口線的情況時(shí)有發(fā)生,所以這就導(dǎo)致被測(cè)項(xiàng)和串口調(diào)試工具無(wú)法進(jìn)行通信。所以在對(duì)串口通信協(xié)議進(jìn)行測(cè)試時(shí),就需要利用串口調(diào)試工具進(jìn)行串口數(shù)據(jù)收發(fā),才能完成數(shù)據(jù)調(diào)試。
本次研究測(cè)試主要內(nèi)容包括主處理模塊、數(shù)字地圖生成模塊,這兩者之間通過(guò),RS485進(jìn)行通信。數(shù)據(jù)傳輸內(nèi)容主要包括命令自檢測(cè)以及地圖數(shù)據(jù)發(fā)送的,必要時(shí),還需要對(duì)鏈路通信進(jìn)行檢查。
在本次研究中,與被測(cè)軟件進(jìn)行串口通訊時(shí),如果需要對(duì)串口的數(shù)據(jù)代碼進(jìn)行插樁循環(huán)發(fā)送,則可以采用插樁代碼的耦合方式進(jìn)行耦合控制,并利用超級(jí)終端對(duì)插樁代碼流程進(jìn)行模擬,并利用串口調(diào)試工具中的串口數(shù)據(jù)發(fā)送功能進(jìn)行串口數(shù)據(jù)傳輸,從而實(shí)現(xiàn)在線調(diào)試。
其主要方法是通過(guò)實(shí)現(xiàn)DmgmCom函數(shù)代碼文件中函數(shù)代碼文件中加入int形勢(shì)的全局變量,包括,g_cmd 和 g_send。在這兩組變量中,g_cmd變量主要用于儲(chǔ)存RS485數(shù)據(jù),儲(chǔ)存完成后,可以向DMGM發(fā)送; 而g_send主要用于對(duì)發(fā)送時(shí)間進(jìn)行調(diào)整;當(dāng)發(fā)送變量的rs485數(shù)據(jù)已經(jīng)完成儲(chǔ)備時(shí),可以將發(fā)送變量的時(shí)間調(diào)整完成,則可以進(jìn)行數(shù)據(jù)發(fā)送。
值得注意的是,在此循環(huán)中,發(fā)送變量通常被定義為int類型,而如果需要將發(fā)送變量定義為char類型,就需要在超級(jí)終端中將g_cmd = 0x5D命令繼續(xù)輸入;輸入命令后,超級(jí)終端則會(huì)根據(jù) 0x5D類型,將發(fā)送變量中的地址進(jìn)行相應(yīng)編碼,但如果采用這種方式,想要達(dá)到預(yù)期的目的,就需要將發(fā)送數(shù)據(jù)儲(chǔ)存到兩種不同儲(chǔ)存模式的內(nèi)存中,避免發(fā)送變量出現(xiàn)問(wèn)題。
基于調(diào)試開(kāi)發(fā)工具的實(shí)現(xiàn),主要是通過(guò)在MPM中插樁代碼。完成代碼插入后,就可以對(duì)MPM進(jìn)行任務(wù)及調(diào)試,從而通過(guò)MPM向,DMGM發(fā)送RS485數(shù)據(jù),在數(shù)據(jù)發(fā)送的過(guò)程中,則可以完成RS485通訊協(xié)議的測(cè)試。
首先來(lái)說(shuō),想要在DmgmCom函數(shù)代碼文件中加入char類型的全局變量g_cmd 和 g_send,隨即采用邏輯流程代碼作為替換DmgmCom函數(shù)的代碼,并將MPM進(jìn)行重新編譯,將編譯好后的函數(shù)流程,在目標(biāo)機(jī)中進(jìn)行運(yùn)行,運(yùn)行過(guò)程中可以應(yīng)用MBM的調(diào)試開(kāi)發(fā)工具對(duì)tCom任務(wù)進(jìn)行任務(wù)級(jí)調(diào)試;調(diào)試方式是,將發(fā)送變量是否等于一的功能代碼進(jìn)行斷點(diǎn)設(shè)置,并使我能夠停留在斷點(diǎn)處,然后通過(guò)調(diào)試開(kāi)發(fā)工具,對(duì)兩個(gè)全局變量進(jìn)行視窗修改,將其改為0x5D和1,隨即使tCom任務(wù)繼續(xù)運(yùn)行,保證tCom任務(wù)能夠再次停留在上述斷點(diǎn)處。當(dāng)tCom任務(wù)停留至斷點(diǎn)處時(shí),則可以通過(guò)變量監(jiān)視窗口,對(duì),recv數(shù)據(jù)中RS485返回的DMGM數(shù)據(jù)進(jìn)行標(biāo)識(shí),并將發(fā)送變量的值修改為0xBE,然后再使任務(wù)繼續(xù)運(yùn)行,并再次使tCom任務(wù)停留在上述斷點(diǎn)處,并應(yīng)用變量監(jiān)視窗口對(duì)DMGM回復(fù)的RS4845數(shù)據(jù)進(jìn)行調(diào)控。
除此之外,在實(shí)際應(yīng)用過(guò)程中還可以應(yīng)用Vx Works 提供的task Suspend函數(shù)完成同樣操作,并且無(wú)需對(duì)發(fā)送變量進(jìn)行定義,則可完成相同的功能。這項(xiàng)函數(shù)的意義主要是為了對(duì)任務(wù)進(jìn)行掛掛起操作。
本文中通過(guò)對(duì)兩種在線調(diào)試串口協(xié)議的通訊測(cè)試方法進(jìn)行研究,將超級(jí)終端以及調(diào)試開(kāi)發(fā)工具作為主要的研究對(duì)象。實(shí)際應(yīng)用過(guò)程中,能夠有效解決部分較為困難的問(wèn)題,是一種良好的處理方案。主要針對(duì)在某些測(cè)試環(huán)境,就難以經(jīng)用串口調(diào)試工具進(jìn)行串口通訊協(xié)議測(cè)試,操作方法較為簡(jiǎn)便,且并不具有較強(qiáng)的局限性。同時(shí),本文中介紹的兩種串口通信協(xié)議測(cè)試方法,并不僅僅局限于串口通信協(xié)議的測(cè)試,也可以應(yīng)用于各種測(cè)試工作中,不僅具有良好的效果,更具有較高的準(zhǔn)確度。給廣大軟件測(cè)試人員帶來(lái)了較為便利的測(cè)試方法,對(duì)軟件測(cè)試領(lǐng)域提供了一種在線調(diào)試和解決問(wèn)題的方法。
[1]趙雙強(qiáng).基于GSM和超短波通信的水情數(shù)據(jù)采集軟件的研制[D].昆明理工大學(xué),2002.
[2]孔林.基于雙工控機(jī)的微機(jī)繼電保護(hù)測(cè)試儀研究與實(shí)現(xiàn)[D].華中科技大學(xué),2009.
[3]胡能輝.Modbus通信協(xié)議自動(dòng)測(cè)試系統(tǒng)的研究與開(kāi)發(fā)[D].上海交通大學(xué),2011.
[4]李端,姜紅旗,林孝康.FPGA原型驗(yàn)證平臺(tái)信令協(xié)議仿真測(cè)試系統(tǒng)設(shè)計(jì)[J].武漢理工大學(xué)學(xué)報(bào)(信息與管理工程版),2006,(05):20-23.