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