仿真系統通信方法和仿真系統的制作方法
【專利摘要】本發明提供一種仿真系統通信方法和仿真系統,其中方法包括:主設備向從設備發送請求消息;所述主設備接收所述從設備返回的請求響應類消息中的一種消息,并判斷所述請求響應類消息中的一種消息是否接收超時,所述請求響應類消息包括所述從設備在判斷出所述請求消息為第一消息時返回的第一消息處理結果,和所述從設備在判斷出所述請求消息為第二消息時返回的請求消息的應答消息;所述主設備在接收超時時,重新發送所述請求消息或進行超時錯誤處理。本發明提供的仿真系統通信方法和仿真系統用于解決仿真器因受到干擾而導致的通信失敗或仿真數據出錯的問題,實現改進仿真器的抗干擾性和穩定性,并能夠實現自動糾正。
【專利說明】仿真系統通信方法和仿真系統
【技術領域】
[0001]本發明涉及通信技術,尤其涉及一種仿真系統通信方法和仿真系統。
【背景技術】
[0002]目前,在微控制器的應用開發過程中通常采用仿真器對軟件和硬件進行仿真和調試。仿真器包括主控板及主控固件、仿真板、適配板和電源板,還需要與仿真器配套的上位機仿真軟件。其中,主控板上設置有主控芯片,主控固件是固化在主控芯片中的軟件,仿真板上設置有仿真芯片,主控芯片可用于控制仿真芯片執行仿真操作。應用仿真器進行測試的過程中,外部環境干擾或用戶開發板發生異常等會導致仿真器通訊中斷、仿真出錯甚至死機等現象,因此對仿真器的抗干擾性和穩定性的改進非常重要。
[0003]現有技術中對仿真器抗干擾性和穩定性的改進通常在硬件上作改進,包括改進仿真器的電源模塊設計、電路板布線設計、增加濾波電路、選用性能穩定的通信芯片或改進適配板的連接方法等,這些改進在一定程度上能夠降低仿真器受干擾的程度,但是仍然無法避免因受到干擾而導致的通信失敗或仿真數據出錯的問題,且無法實現自動糾正。
【發明內容】
[0004]本發明提供一種仿真系統通信方法和仿真系統,用于解決仿真器因受到干擾而導致的通信失敗或仿真數據出錯的問題,實現改進仿真器的抗干擾性和穩定性,并實現自動糾正。
[0005]本發明實施例提供一種仿真系統通信方法,包括:
[0006]主設備向從設備發送請求消息;
[0007]所述主設備接收所述從設備返回的請求響應類消息中的一種消息,并判斷所述請求響應類消息中的一種消息是否接收超時,所述請求響應類消息包括所述從設備在判斷出所述請求消息為第一消息時返回的第一消息處理結果,和所述從設備在判斷出所述請求消息為第二消息時返回的請求消息的應答消息,所述第一消息為所述從設備對所述請求消息的處理時間小于設定值的請求消息,所述第二消息為所述從設備對所述請求消息的處理時間大于設定值的請求消息;
[0008]所述主設備在接收超時時,重新發送所述請求消息或進行超時錯誤處理。
[0009]本發明實施例提供一種仿真系統通信方法,包括:
[0010]從設備接收主設備發送的請求消息,并判斷所述請求消息是否接收超時;
[0011]所述從設備在發生接收超時時,向所述主設備發送重發請求,以及在未發生接收超時時,向所述主設備返回請求響應類消息中的一種消息,所述請求響應類消息包括:所述從設備在判斷出所述請求消息為第一消息時向所述主設備返回的第一消息處理結果,和所述從設備在判斷出所述請求消息為第二消息時向所述主設備返回的請求消息的應答消息,所述第一消息為所述從設備對所述請求消息的處理時間小于設定值的請求消息,所述第二消息為所述從設備對所述請求消息的處理時間大于設定值的請求消息。[0012]本發明實施例提供一種仿真系統,包括主設備和從設備,所述主設備用于向所述從設備發送請求消息;接收所述從設備返回的請求響應類消息中的一種消息,并判斷所述請求響應類消息中的一種消息是否接收超時,所述請求響應類消息包括所述從設備在判斷出所述請求消息為第一消息時返回的第一消息處理結果,和所述從設備在判斷出所述請求消息為第二消息時返回的請求消息的應答消息,所述第一消息為所述從設備對所述請求消息的處理時間小于設定值的請求消息,所述第二消息為所述從設備對所述請求消息的處理時間大于設定值的請求消息;在接收超時時,重新發送所述請求消息或進行超時錯誤處理;
[0013]所述從設備用于接收所述主設備發送的請求消息,并判斷所述請求消息是否接收超時;在發生接收超時時,向所述主設備發送重發請求,以及在未發生接收超時時,向所述主設備返回所述請求響應類消息中的一種消息。
[0014]本發明實施例的技術方案通過主設備向從設備發送請求消息,從設備判斷該請求消息是否接收超時,若未超時,則向主設備發送請求響應消息,并判斷該請求響應消息是否發送超時,主設備判斷該請求響應消息是否接收超時,當主設備接收超時時,重新發送所述請求消息或進行超時錯誤處理,能夠解決仿真器因受到干擾而導致的通信失敗或仿真數據出錯的問題,實現改進仿真器的抗干擾性和穩定性,并實現自動糾正。且通過從設備對第一消息和第二消息進行辨別,針對處理時間不同的消息,從設備向主設備發送不同的響應消息,能夠避免在從設備對請求消息的處理還未結束時,主設備誤報錯的情況發生。
【專利附圖】
【附圖說明】
[0015]圖1為本發明實施例一提供的仿真系統通信方法的流程圖;
[0016]圖2為本發明實施例一提供的仿真系統通信方法中從設備的頂層數據流示意圖;
[0017]圖3為本發明實施例一提供的仿真系統通信方法中請求消息的消息幀結構示意圖;
[0018]圖4為本發明實施例二提供的仿真系統通信方法的流程圖;
[0019]圖5為本發明實施例三提供的仿真系統通信方法的流程圖;
[0020]圖6為本發明實施例四提供的仿真系統通信方法的流程圖;
[0021]圖7為本發明實施例四提供的仿真系統通信方法中從設備的底層數據流示意圖;
[0022]圖8為本發明實施例五提供的仿真系統通信方法的流程圖;
[0023]圖9為本發明實施例六提供的仿真系統的結構示意圖。
【具體實施方式】
[0024]實施例一
[0025]圖1為本發明實施例一提供的仿真系統通信方法的流程圖,圖2為本發明實施例一提供的仿真系統通信方法中從設備的頂層數據流示意圖,圖3為本發明實施例一提供的仿真系統通信方法中請求消息的消息幀結構示意圖,該方法適用于仿真系統中,通常仿真系統包括主設備和從設備,主設備和從設備通過各種通信方式連接,從設備接收主設備的指令完成仿真操作,并將仿真結果返回給主設備。該方法可由仿真系統中的主設備來執行,可以通過軟件/硬件的方式實現。如圖1-3所示,該仿真系統通信方法可以包括:[0026]步驟101、主設備向從設備發送請求消息。
[0027]主設備可以為設置在計算機中的上位機仿真軟件,用于向從設備發送仿真參數以及下達仿真命令,且實時接收從設備返回的仿真運行狀態和仿真數據。從設備可以為設置在仿真器主控芯片上的主控固件,用于根據主設備發送的仿真參數及按照主設備下達的仿真命令控制仿真芯片執行仿真操作,并將仿真運行狀態和仿真芯片在仿真運行過程中產生的仿真數據實時傳送給主設備。主設備和從設備可通過仿真器主控板中主控芯片內嵌的通用串行總線(Universal Serial Bus,簡稱USB)模塊進行指令和數據的傳輸。主設備和從設備采用主從式為主的查詢和響應方式來實現二者的數據通信,即主設備向從設備發送請求消息,從設備向主設備返回請求響應消息,在特殊情況下,允許從設備主動發送信息給主設備。其中,主設備向從設備發送的請求消息可以為主設備發起的仿真參數設置請求消息,例如:用戶在上位機仿真軟件提供的仿真參數設置窗口中設置仿真參數后,上位機仿真軟件根據該仿真參數生成仿真參數設置請求消息幀,該消息幀可以包括幀頭信息、數據長度、從設備地址、內容以及求和校驗碼,其中的內容即可以為設置的仿真參數。上述仿真參數設置請求消息幀的生成方法可根據本領域技術人員熟知的方式設定,本實施例對此不作限定。主設備將生成的仿真參數設置請求消息幀作為請求消息,發送給從設備,以使從設備根據該消息幀中的內容執行相應的仿真操作。
[0028]步驟102、主設備接收從設備返回的請求響應類消息中的一種消息,并判斷請求響應類消息中的一種消息是否接收超時;
[0029]主設備在執行完步驟101后,立即啟動定時器開始計時,等待接收從設備返回的請求響應類消息中的一種消息。若在設定時間到之前接收到完整的請求響應類消息中的任一種消息,則視為該請求響應類消息未發生接收超時,若在設定時間到之后仍未接收到完整的請求響應類消息中的任一種消息,則視為該請求響應類消息接收超時。
[0030]請求響應類消息可以包括從設備在判斷出請求消息為第一消息時返回的第一消息處理結果,和從設備在判斷出請求消息為第二消息時返回的請求消息的應答消息。其中,第一消息為從設備對請求消息的處理時間小于設定值的請求消息,第二消息為從設備對請求消息的處理時間大于設定值的請求消息。若請求響應類消息包括上述兩種消息,主設備在執行步驟101之后,會等待接收從設備返回的請求響應類消息中的其中一種消息。具體的,從設備在接收到主設備發送的請求消息之后,需要先解析該請求消息的消息幀,得到消息幀中的具體內容。消息幀可包括幀頭信息、數據長度、從設備地址、功能碼、內容及求和校驗碼。從設備對該消息幀中的功能碼進行判斷,確認該請求消息為第一消息或第二消息,即:從設備對該請求消息所需的處理時間進行判斷,當判斷出處理時間小于設定值時,則認為該請求消息為第一消息,該設定值可小于主設備在對請求響應類消息進行接收超時監測時設定的時間,例如:主設備對請求響應類消息進行接收超時監測時設定的時間為6分鐘,則該設定值可以設置為5分鐘,當從設備判斷出處理時間小于5分鐘時,可表示從設備對該請求消息的處理可在設定的時間內完成。當從設備判斷出請求消息為第一消息時,立即對第一消息進行處理,得到第一消息處理結果,作為請求響應類消息中的一種消息發送給主設備,以使主設備停止接收超時監測。
[0031]從設備對該請求消息所需的處理時間進行判斷,當判斷出處理時間大于設定值時,則認為該請求消息為第二消息,該設定值可大于主設備在對請求響應類消息進行接收超時監測時設定的時間,如上述例子:當從設備判斷出處理時間大于6分鐘時,可表示從設備對該請求消息的處理不一定能在設定的時間內完成,因此,需從設備先向主設備返回一個請求消息的應答消息,然后再對第二消息進行處理;或者當從設備無法根據消息幀預計第二消息處理的確切時間時,從設備可立即生成請求消息的應答消息,作為請求響應類消息中的一種消息發送給主設備,以使主設備停止對請求響應類消息進行接收超時監測,轉為等待接收從設備返回第二消息的處理結果。
[0032]步驟103、主設備在接收超時時,重新發送請求消息或進行超時錯誤處理。
[0033]當主設備判斷出請求響應類消息接收超時時,則認為請求響應類消息在發送的過程中可能受到了干擾,導致請求響應類消息的消息幀發生錯誤,主設備向從設備重新發送該請求消息。或者主設備進行超時錯誤處理,具體可以為主設備向從設備發出重傳請求響應類消息的請求消息,以使從設備重新將請求響應類消息發送給主設備。當主設備多次監測到請求響應類消息發生超時時,可以向仿真器中USB模塊的驅動單元發送復位信號,待USB模塊復位后重新發送請求消息。
[0034]本實施例的技術方案通過主設備向從設備發送請求消息,然后接收從設備返回的請求響應類消息中的一種消息,并判斷該請求響應類消息中的一種消息是否接收超時,當主設備接收超時時,重新發送所述請求消息或進行超時錯誤處理,能夠解決仿真器因受到干擾而導致的通信失敗或仿真數據出錯的問題,實現改進仿真器的抗干擾性和穩定性,并實現自動糾正。且本實施例的技術方案通過從設備對第一消息和第二消息進行辨別,針對處理時間不同的消息,主設備接收到從設備發送的不同的響應消息,能夠避免在從設備對請求消息的處理還未結束時,主設備誤報錯的情況發生。
[0035]實施例二
[0036]圖4為本發明實施例二提供的仿真系統通信方法的流程圖,本實施例是在上述實施例的基礎上,進一步優化了仿真系統通信方法,該方法可由仿真系統中的主設備來執行。如圖4所示,在上述實施例的基礎上,請求響應類消息還可以包括:從設備在判斷出請求消息中的從設備地址、功能碼和求和校驗碼中一項或幾項不正確時返回的異常功能碼。即請求響應類消息包括了三種消息,主設備接收其中的一種消息,并判斷該消息是否接收超時。具體實現過程中主設備執行以下三個步驟中的一個:
[0037]步驟1021、主設備接收從設備在判斷出請求消息中的從設備地址、功能碼和求和校驗碼中一項或幾項不正確時返回的異常功能碼。
[0038]步驟1022、主設備接收從設備在判斷出請求消息為第一消息時返回的第一消息處理結果,該第一消息為從設備對請求消息的處理時間小于設定值的請求消息。
[0039]步驟1023、主設備接收從設備在判斷出請求消息為第二消息時返回的請求消息的應答消息,該第二消息為從設備對請求消息的處理時間大于設定值的請求消息。主設備執行步驟1021、步驟1022及步驟1023中的一個步驟,具體可以為:從設備接收到主設備發送的請求消息,需要先解析請求消息的消息幀,得到消息幀中的具體內容。消息幀可包括幀頭信息、數據長度、從設備地址、功能碼、內容及求和校驗碼。從設備對請求消息進行判斷,判斷該請求消息的消息幀中的從設備地址、功能碼及求和校驗碼是否正確,其中從設備地址具體可與接收到請求消息的從設備的地址相比較,判斷二者是否一致,用于驗證該請求消息的接收對象是否正確;判斷功能碼用于驗證從設備的當前狀態是否支持該功能;求和校驗碼用于驗證該消息幀中的數據在傳送的過程中是否發生了突變。當從設備判斷出請求消息中的從設備地址、功能碼及求和校驗碼中一項或幾項不正確時,則生成異常功能碼,作為請求響應類消息中的一種消息發送給主設備。主設備接收該消息,并停止接收超時監測,重新發送請求消息。該異常功能碼可以為一個特殊的字符串或一個攜帶特殊字符串的消息幀,具體可由本領域技術人員根據慣用的技術手段設定,以使主設備通過該異常功能碼可識別到從設備接收到的請求消息有誤,主設備將重新發送請求消息。
[0040]若從設備判斷出請求消息中的從設備地址、功能碼及求和校驗碼都正確,則從設備根據消息幀中的功能碼判斷該請求消息為第一消息或第二消息,即從設備對該請求消息所需的處理時間進行判斷,當判斷出處理時間小于設定值時,則認為該請求消息為第一消息,該設定值的設定可參照上述實施例。當從設備判斷出請求消息為第一消息時,立即對第一消息進行處理,得到第一消息處理結果,作為請求響應類消息中的一種消息發送給主設備。主設備接收該第一消息處理結果,并停止接收超時監測。
[0041]當從設備判斷出該請求消息的處理時間大于設定值時,則認為該請求消息為第二消息,則從設備立即生成請求消息的應答消息,作為請求響應類消息的一種消息發送給主設備,以使主設備停止對請求響應類消息進行接收超時監測,轉為等待接收從設備返回第二消息的處理結果。上述方法能夠避免從設備對請求消息的處理還未結束,主設備誤報錯的情況發生。
[0042]主設備接收從設備在判斷出請求消息為第二消息時返回的應答消息之后還包括:
[0043]步驟1024、主設備接收從設備返回第二消息處理結果。
[0044]具體可以為:從設備向主設備返回應答消息后,立即對第二消息進行處理,處理過程可以為:根據該請求消息攜帶的仿真命令控制仿真芯片執行仿真操作,得到仿真結果或數據,再生成相應的處理結果發送給主設備。上述從設備處理第二消息的具體方式可以以現有仿真技術中常用的方法來實現,或者由技術人員針對不同的仿真操作進行實際的編程以得到處理結果。得到第二消息處理結果,發送給主設備。
[0045]在實施例一的基礎上,請求響應類消息還可以包括:從設備在判斷出所述請求消息接收超時時返回的重發請求消息。即請求響應類消息包括了三種消息,主設備接收其中一種消息。對于該重發請求消息,主設備執行過程如下步驟:
[0046]步驟1025、主設備接收從設備在判斷出該請求消息接收超時時返回的重發請求消
肩、O
[0047]主設備執行步驟1025、步驟1022及步驟1023中的任一個步驟,其中對步驟1022及步驟1023的執行過程可參照上述實施例,此處針對步驟1025的執行過程進行描述。
[0048]具體的,從設備得知主設備將要發送請求消息時,開始接收該請求消息并監測該請求消息是否接收超時,具體可以為啟動定時器開始計時,若從設備在設定時間內未接收到完整的請求消息的消息幀,則認為接收超時,從設備生成重發請求消息,作為請求響應類消息的一種消息返回給主設備。主設備接收該消息,然后重新發送請求消息。若從設備在設定時間內接收到了完整的請求消息的消息幀,則停止對該請求消息進行接收超時監測,并對該消息幀進行判斷,將判斷的結果作為請求響應類消息中的一種消息發送給主設備,以使主設備執行步驟1022及步驟1023中的一個。[0049]進一步的,請求響應類消息還可以將以上四種消息包括在內,主設備接收其中一種消息。相應的,主設備執行步驟1025、步驟1021、步驟1022及步驟1023中的任一個步驟。具體的,在從設備判斷出請求消息接收超時時,向主設備發送重發請求消息,則主設備執行步驟1025 ;若從設備判斷出請求消息接收未超時,則對請求消息的消息幀進行判斷,當判斷出該請求消息中的從設備地址、功能碼和求和校驗碼中的一項或幾項不正確時,生成異常功能碼發送給主設備,則主設備執行步驟1021 ;若從設備判斷出該請求消息的消息幀都正確時,繼續對消息幀中的功能碼進行判斷,當判斷出該請求消息為第一消息時,從設備立即對第一消息進行處理,生成第一消息處理結果發送給主設備,之后主設備執行步驟1022 ;若從設備判斷出該請求消息為第二消息時,從設備立即向主設備發送請求消息的應答消息,則主設備執行步驟1023,然后等待接收第二消息的處理結果。其中對各步驟的具體執行過程可參照上述內容。此處不再贅述。
[0050]在上述實施例的基礎上,主設備接收從設備返回的第一消息處理結果或第二消息處理結果之后還包括:
[0051]步驟1026、主設備在未發生接收超時時,判斷第一消息處理結果或第二消息處理結果中的從設備地址、功能碼及求和校驗碼是否正確,在其中一項或幾項不正確時向從設備發送重傳數據請求。
[0052]當主設備判斷從設備發送的請求響應類消息未發生超時時,對請求響應類消息中的處理結果進行消息幀解析和識別,進而判斷結果處理中的從設備地址、功能碼及求和校驗碼是否正確,若其中一項或幾項不正確,則可能由于處理結果在消息傳送的過程中受到了干擾導致處理結果的消息幀發生錯誤,主設備向從設備發送重傳數據請求,以使從設備重新將處理結果作為請求響應類消息中的一種消息發送給主設備。若請求響應類消息中的處理結果的消息幀都正確,則主設備執行步驟1027的操作:
[0053]步驟1027、主設備向從設備發送第一消息處理結果的應答消息或第二消息處理結果的應答消息。
[0054]具體可以為:當主設備在接收到從設備發送的第一消息處理結果的應答消息或第二消息處理結果的應答消息的完整消息幀,且判斷出處理結果消息幀中的從設備地址、功能碼及求和校驗碼都正確之后,立即向從設備發送應答消息,告知從設備處理結果已經接收完畢,完成此次請求任務。
[0055]上述實施例中,請求消息的應答消息、第一消息處理結果的應答消息或第二消息處理結果的應答消息的生成規則和具體內容可以以本領域技術人員常用的方式來實現,此處不作限定。
[0056]本實施例的技術方案通過主設備向從設備發送請求消息,然后接收從設備返回的請求響應類消息中的一種,并判斷該請求響應類消息是否接收超時,當主設備接收超時時,重新發送所述請求消息或進行超時錯誤處理,并且主設備接收到從設備返回的請求響應類消息后立即發送處理結果的應答消息,并對處理結果進行判斷,能夠解決仿真器因受到干擾而導致的通信失敗或仿真數據出錯的問題,實現改進仿真器的抗干擾性和穩定性,并實現自動糾正。且從設備根據請求消息進行判斷,對消息處理時間較長的第二消息,則立即向主設備返回請求消息的應答消息,然后再對該請求消息進行處理,避免主設備因長時間收不到請求響應類消息而產生誤報接收超時故障發生。[0057]實施例三
[0058]圖5為本發明實施例三提供的仿真系統通信方法的流程圖。本實施例是在上述實施例的基礎上,進一步優化了仿真系統通信方法,該方法可由仿真系統中的從設備來執行。如圖5所示,該仿真系統通信方法可以包括:
[0059]步驟201、從設備接收主設備發送的請求消息,并判斷請求消息是否接收超時。
[0060]具體可以為:當從設備得知主設備將要發送請求消息時,立即啟動定時器開始計時,并開始接收主設備發送的請求消息,,若在定時時間到之前接收到完整的請求消息的消息幀,則視為請求消息未發生超時,若在定時時間到之后仍未接收到完整的請求消息的消息幀,則視為請求消息接收超時。
[0061]步驟202、從設備在發生接收超時時,向主設備發送重發請求,以及在未發生接收超時時,向主設備返回請求響應類消息中的一種消息。
[0062]當從設備監測到主設備發送的請求消息發生接收超時,則向主設備發送重發請求,以使主設備重新發送該請求消息。該重發請求可以包括錯誤碼,具體可以為按照通信協議設定的一個特殊的字符串或一個攜帶有特殊字符串的消息幀。
[0063]當從設備監測到主設備發送的請求消息未發生接收超時時,則向主設備返回請求響應類消息中的一種消息。請求響應類消息可以包括:從設備在判斷出請求消息為第一消息時向主設備返回的第一消息處理結果,和從設備在判斷出請求消息為第二消息時向主設備返回的請求消息的應答消息,第一消息為從設備對請求消息的處理時間小于設定值的請求消息,第二消息為從設備對請求消息的處理時間大于設定值的請求消息。即:請求響應類消息包括上述兩種消息,從設備將其中的一種消息發送給主設備。
[0064]具體的,在從設備判斷請求消息未接收超時時,將接收到的請求消息進行解析,得到請求消息的消息幀的具體內容,對消息幀中的功能碼進行判斷,即根據功能碼中包含的信息對該請求消息所需的處理時間進行判斷。當從設備判斷出處理時間小于設定值時,則認為該請求消息為第一消息,該設定值可小于主設備在對請求響應類消息進行接收超時監測時設定的時間。當從設備判斷出請求消息為第一消息時,立即對第一消息進行處理,得到第一消息處理結果,作為請求響應類消息中的一種消息發送給主設備。
[0065]若從設備根據功能碼判斷出處理時間大于設定值時,則認為該請求消息為第二消息,該設定值可大于主設備在對請求響應類消息進行接收超時監測時設定的時間,或者當從設備無法根據消息幀預計第二消息處理的確切時間時,從設備可立即生成請求消息的應答消息,作為請求響應類消息中的一種消息發送給主設備,以使主設備停止對請求響應類消息進行接收超時監測,轉為等待接收從設備返回第二消息的處理結果。
[0066]本實施例的技術方案通過從設備接收主設備發送的請求消息,并判斷該請求消息是否超時,若超時則向主設備發送重發請求,若未超時則向主設備返回請求響應類消息,能夠解決仿真器因受到干擾而導致的通信失敗或仿真數據出錯的問題,實現改進仿真器的抗干擾性和穩定性,并實現自動糾正。且本實施例的技術方案通過從設備對第一消息和第二消息進行辨別,針對處理時間不同的消息,向主設備發送不同的響應消息,能夠避免在從設備對請求消息的處理還未結束時,主設備誤報錯的情況發生。
[0067]實施例四
[0068]圖6為本發明實施例四提供的仿真系統通信方法的流程圖,圖7為本發明實施例四提供的仿真系統通信方法中從設備的底層數據流示意圖。本實施例是在上述實施例的基礎上,進一步優化了仿真系統通信方法,該方法可由仿真系統中的從設備來執行。如圖6和圖7所示,在上述實施例的基礎上,從設備向主設備返回的請求響應類消息還可以包括:從設備在判斷出請求消息中的從設備地址、功能碼和求和校驗碼中一項或幾項不正確時返回的異常功能碼。即請求響應類消息包括了三種消息,從設備將其中一種消息發送給主設備。具體執行過程中,從設備將執行如下三個步驟中的一個:
[0069]步驟2021、從設備在判斷出請求消息中的從設備地址、功能碼和求和校驗碼中一項或幾項不正確時返回的異常功能碼。
[0070]步驟2022、從設備在判斷出請求消息為第一消息時向主設備返回第一消息處理結果,第一消息為從設備對請求消息的處理時間小于設定值的請求消息。
[0071]步驟2023、從設備在判斷出請求消息為第二消息時向主設備返回應答消息,第二消息為從設備對請求消息的處理時間大于設定值的請求消息。
[0072]具體為:從設備在判斷出請求消息未發生接收超時后,對該請求消息進行解析,得到請求消息的消息幀,對消息幀中的從設備地址、功能碼及求和校驗碼進行判斷。當從設備判斷出請求消息中的從設備地址、功能碼及求和校驗碼中一項或幾項不正確時,則生成異常功能碼,作為請求消息的響應消息發送給主設備,以使主設備重新發送請求消息。
[0073]若從設備判斷出第一消息中的從設備地址、功能碼及求和校驗碼都正確時,則根據消息幀中的功能碼判斷該請求消息為第一消息或第二消息,即從設備對該請求消息所需的處理時間進行判斷,當判斷出處理時間小于設定值時,則認為該請求消息為第一消息,該設定值可小于主設備在對請求響應類消息進行接收超時監測時設定的時間。當從設備判斷出請求消息為第一消息時,立即對第一消息進行處理,得到第一消息處理結果,作為請求消息的響應消息發送給主設備。當從設備判斷出處理時間大于設定值時,則認為該請求消息為第二消息,該設定值可大于主設備在對請求響應類消息進行接收超時監測時設定的時間,或者當從設備無法根據消息幀預計第二消息處理的確切時間時,從設備可立即生成請求消息的應答消息,作為請求消息的響應消息發送給主設備,以使主設備停止對請求響應類消息進行接收超時監測,轉為等待接收從設備返回第二消息的處理結果。上述方法能夠避免從設備對請求消息的處理還未結束,主設備誤報錯的情況發生。
[0074]在上述技術方案的基礎上,從設備在判斷出請求消息為第二消息時向主設備返回應答消息之后還可以執行步驟2024。
[0075]步驟2024、從設備向主設備返回第二消息處理結果。從設備對第二消息的處理過程以及處理結果發送的方式可參照上述實施例中提到的方式,此處不再贅述。
[0076]進一步的,從設備向主設備返回第一消息處理結果或第二消息處理結果之后,還可以執行步驟2025。
[0077]步驟2025、從設備接收主設備發送的第一消息處理結果的應答消息或第二消息處理結果的應答消息。
[0078]當從設備開始向主設備發送第一消息處理結果或第二消息處理結果時,啟動定時器開始計時,并監測USB通信模塊的消息發送狀態,若監測到USB通信模塊的狀態為發送完畢,則視為處理結果未發生發送超時,從設備停止計時;若在設定時間內,監測到USB通信模塊的狀態一直為發送狀態,則認為處理結果發送超時,從設備停止計時并重新發送第一消息處理結果或第二消息處理結果。
[0079]另外,當從設備得知主設備即將發送第一消息處理結果的應答消息或第二消息處理結果的應答消息時,從設備啟動應答消息接收超時監測,若在設定時間到之前收到了主設備發送的相應處理結果的應答消息,則視為未發生接收超時,則從設備等待接收主設備的其它指令。若在定時時間到之后仍未收到主設備發送的相應處理結果的應答消息,則視為發生接收超時,從設備則可以重新向主設備發送相應處理結果,或采取與主設備發起查詢的方式或其他處理方式。若從設備監測到多次發生發送超時或接收超時,則從設備USB模塊的驅動單元發送復位信號,待USB模塊復位后重新發送相應處理結果。
[0080]上述實施例中提到的發送超時的設定時間和接收超時的設定時間均可由本領域技術人員根據仿真事件或USB通信模塊的性能具體設定,本實施例對此不做限定。
[0081]本實施例的技術方案通過從設備接收主設備發送的請求消息,并判斷該請求消息是否超時,若超時則向主設備發送重發請求,若未超時則向主設備返回請求響應類消息中的一種消息,并且從設備在發送處理結果時進行發送超時監測,能夠解決仿真器因受到干擾而導致的通信失敗或仿真數據出錯的問題,實現改進仿真器的抗干擾性和穩定性,并實現自動糾正。且從設備根據請求消息進行判斷,對消息處理時間較長的第二消息,則立即向主設備返回請求消息的應答消息,然后再對該請求消息進行處理,避免主設備因長時間收不到請求響應類消息而產生誤報接收超時故障發生。
[0082]實施例五
[0083]圖8為本發明實施例五提供的仿真系統通信方法的流程圖。本實施例是在上述實施例的基礎上,進一步優化了仿真系統通信方法。如圖8所示,該仿真系統通信方法包括:
[0084]步驟301、主設備向從設備發送請求消息,并啟動請求響應類消息接收超時監測,若發生超時,則中斷當前操作,轉而執行步驟315,若未發生超時,則連續執行以下步驟,直至主設備停止接收超時監測。
[0085]步驟302、從設備接收主設備發送的請求消息,并判斷請求消息是否接收超時,若接收超時,則執行步驟303,若未發生接收超時,則執行步驟304。
[0086]步驟303、從設備向主設備發送重發請求,以使主設備停止接收超時監測,并重新執行步驟301。
[0087]步驟304、從設備判斷請求消息中的從設備地址、功能碼及求和校驗碼是否正確,若不正確,則執行步驟305,若正確,則執行步驟306。
[0088]步驟305、從設備生成異常功能碼,并將該異常功能碼發送給主設備,以使主設備停止超時監測,并重新執行步驟301。
[0089]步驟306、從設備對請求消息為第一消息或第二消息進行判斷,若判斷出該請求消息為第一消息,則執行步驟307,若判斷出該請求消息為第二消息,則執行步驟309。
[0090]步驟307、從設備處理該請求消息,并生成第一消息處理結果,之后執行步驟308。
[0091]步驟308、從設備將該第一消息處理結果發送給主設備,并執行步驟312。
[0092]步驟309、從設備立即向主設備發送請求消息的應答消息,并執行步驟310。
[0093]步驟310、從設備處理該請求消息,生成第二消息處理結果,之后執行步驟311。
[0094]步驟311、從設備將該第二消息處理結果發送給主設備,并執行步驟312。
[0095]步驟312、從設備啟動處理結果發送超時監測,判斷處理結果是否發送超時,若判斷出第一消息處理結果發送超時,則重新執行步驟308,若判斷出第二消息處理結果發送超時,則重新執行步驟并執行步驟311,若未發生發送超時,則執行步驟313。
[0096]步驟313、主設備判斷第一消息處理結果或第二消息處理結果中的從設備地址、功能碼及求和校驗碼是否正確,若正確,則執行步驟314,若不正確,則執行步驟316。
[0097]步驟314、若請求消息為第一消息,則主設備向從設備發送第一消息處理結果的應答消息,若請求消息為第二消息,則主設備向從設備發送第二消息處理結果的應答消息,以使從設備判斷相應處理結果的應答消息是否接收超時。
[0098]步驟315、主設備向從設備重新發送請求消息或進行超時錯誤處理,若重新發送請求消息,則返回執行步驟301,若進行超時錯誤處理,則可對主設備或從設備中的通信模塊進行復位,之后返回執行步驟301。
[0099]步驟316、若請求消息為第一消息,則主設備向從設備發送第一消息處理結果的重傳消息,以返回執行步驟308,若請求消息為第二消息,則主設備向從設備發送第二消息處理結果的重傳消息,以返回執行步驟311。
[0100]本實施例的技術方案通過主設備向從設備發送請求消息,從設備判斷該請求消息是否接收超時,若未超時,則向主設備發送請求響應類消息中的一種消息,并判斷該請求響應類消息是否發送超時,主設備判斷該請求響應類消息是否接收超時,當主設備接收超時時,重新發送所述請求消息或進行超時錯誤處理,并且從設備在發送處理結果時進行發送超時監測,主設備接收到從設備返回的請求響應類消息中的處理結果后立即發送處理結果的應答消息,并對處理結果進行判斷,能夠解決仿真器因受到干擾而導致的通信失敗或仿真數據出錯的問題,實現改進仿真器的抗干擾性和穩定性,并實現自動糾正。且從設備根據請求消息進行判斷,對消息處理時間較長的第二消息,則立即向主設備返回請求消息的應答消息,然后再對該請求消息進行處理,避免主設備因長時間收不到請求響應類消息而產生誤報接收超時故障發生。
[0101]實施例六
[0102]圖9為本發明實施例六提供的仿真系統的結構示意圖。如圖9所示,該仿真系統包括:主設備I和從設備2。
[0103]其中,主設備I為設置在計算機中的上位機仿真軟件,用于向從設備2發送請求消息,接收從設備2返回的請求響應類消息中的一種消息,并判斷請求響應類消息是否接收超時,在接收超時時,重新發送請求消息或進行超時錯誤處理。請求響應類消息包括從設備2在判斷出請求消息為第一消息時返回的第一消息處理結果,和從設備2在判斷出請求消息為第二消息時返回的請求消息的應答消息,第一消息為從設備2對請求消息的處理時間小于設定值的請求消息,第二消息為從設備2對請求消息的處理時間大于設定值的請求消肩、O
[0104]從設備2為設置在仿真器主控芯片中的主控固件,用于接收主設備I發送的請求消息,并判斷請求消息是否接收超時,在發生接收超時時,向主設備I發送重發請求,以及在未發生接收超時時,向主設備I返回請求響應類消息中的一種消息。
[0105]主設備I和從設備2可執行上述實施例所提供的仿真系統通信方法,執行方法可參照上述方法實施例,即上述仿真系統可執行本發明任意實施例所提供的方法,具備執行方法相應的功能模塊和有益效果。[0106]本實施例的技術方案通過主設備向從設備發送請求消息,從設備判斷該請求消息是否接收超時,若未超時,則向主設備發送請求響應類消息中的一種消息,并判斷該請求響應類消息中的一種消息是否發送超時,主設備判斷該請求響應類消息是否接收超時,當主設備接收超時時,重新發送所述請求消息或進行超時錯誤處理,能夠解決仿真器因受到干擾而導致的通信失敗或仿真數據出錯的問題,實現改進仿真器的抗干擾性和穩定性,并實現自動糾正。且通過從設備對第一消息和第二消息進行辨別,針對處理時間不同的消息,主設備接收到從設備發送的不同的響應消息,能夠避免在從設備對請求消息的處理還未結束時,主設備誤報錯的情況發生。
[0107]本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0108]最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。
【權利要求】
1.一種仿真系統通信方法,其特征在于,包括: 主設備向從設備發送請求消息; 所述主設備接收所述從設備返回的請求響應類消息中的一種消息,并判斷所述請求響應類消息中的一種消息是否接收超時,所述請求響應類消息包括所述從設備在判斷出所述請求消息為第一消息時返回的第一消息處理結果,和所述從設備在判斷出所述請求消息為第二消息時返回的請求消息的應答消息,所述第一消息為所述從設備對所述請求消息的處理時間小于設定值的請求消息,所述第二消息為所述從設備對所述請求消息的處理時間大于設定值的請求消息; 所述主設備在接收超時時,重新發送所述請求消息或進行超時錯誤處理。
2.根據權利要求1所述的仿真系統通信方法,其特征在于,所述請求響應類消息還包括: 所述從設備在判斷出所述請求消息中的從設備地址、功能碼和求和校驗碼中一項或幾項不正確時返回的異常功能碼。
3.根據權利要求1或2所述的仿真系統通信方法,其特征在于,所述請求響應類消息還包括: 所述從設備在判斷出所述請求消息接收超時時返回的重發請求消息。
4.根據權利要求3所述的仿真系統通信方法,其特征在于,所述主設備接收所述從設備在判斷出所述請求消息為第二消息時返回的請求消息的應答消息之后還包括: 所述主設備接收所述從設備返回第二消息處理結果。
5.根據權利要求4所述的仿真系統通信方法,其特征在于,所述主設備接收所述從設備返回的第一消息處理結果或第二消息處理結果之后,還包括: 所述主設備向所述從設備發送所述第一消息處理結果的應答消息或所述第二消息處理結果的應答消息。
6.根據權利要求5所述的仿真系統通信方法,其特征在于,所述主設備在未發生接收超時時,判斷所述第一消息處理結果或第二消息處理結果中的從設備地址、功能碼及求和校驗碼是否正確,在其中一項或幾項不正確時向所述從設備發送重傳數據請求。
7.根據權利要求6所述的仿真系統通信方法,其特征在于,所述主設備為上位機仿真軟件,所述從設備為主控固件。
8.一種仿真系統通信方法,其特征在于,包括: 從設備接收主設備發送的請求消息,并判斷所述請求消息是否接收超時; 所述從設備在發生接收超時時,向所述主設備發送重發請求,以及在未發生接收超時時,向所述主設備返回請求響應類消息中的一種消息,所述請求響應類消息包括:所述從設備在判斷出所述請求消息為第一消息時向所述主設備返回的第一消息處理結果,和所述從設備在判斷出所述請求消息為第二消息時向所述主設備返回的請求消息的應答消息,所述第一消息為所述從設備對所述請求消息的處理時間小于設定值的請求消息,所述第二消息為所述從設備對所述請求消息的處理時間大于設定值的請求消息。
9.根據權利要求8所述的仿真系統通信方法,其特征在于,所述請求響應類消息還包括: 所述從設備在判斷出所述請求消息中的從設備地址、功能碼和求和校驗碼中一項或幾項不正確時返回的異常功能碼。
10.根據權利要求8或9所述的仿真系統通信方法,其特征在于,所述從設備在判斷出所述請求消息為第二消息時向所述主設備返回的請求消息的應答消息之后還包括: 所述從設備向所述主設備返回第二消息處理結果。
11.根據權利要求10所述的仿真系統通信方法,其特征在于,所述從設備向所述主設備返回所述第一消息處理結果或第二消息處理結果之后還包括: 所述從設備接收所述主設備發送的所述第一消息處理結果的應答消息或第二消息處理結果的應答消息。
12.根據權利要求11所述的仿真系統通信方法,其特征在于,所述主設備為上位機仿真軟件,所述從設備為主控固件。
13.一種仿真系統,其特征在于,包括主設備和從設備,所述主設備用于向所述從設備發送請求消息;接收所述從設備返回的請求響應類消息中的一種消息,并判斷所述請求響應類消息中的一種消息是否接收超時,所述請求響應類消息包括所述從設備在判斷出所述請求消息為第一消息時返回的第一消息處理結果,和所述從設備在判斷出所述請求消息為第二消息時返回的請求消息的應答消息,所述第一消息為所述從設備對所述請求消息的處理時間小于設定值的請求消息,所述第二消息為所述從設備對所述請求消息的處理時間大于設定值的請求消息;在接收超時時,重新發送所述請求消息或進行超時錯誤處理; 所述從設備用于接收所述主設備發送的請求消息,并判斷所述請求消息是否接收超時;在發生接收超時時 ,向所述主設備發送重發請求,以及在未發生接收超時時,向所述主設備返回所述請求響應類消息中的一種消息。
14.根據權利要求13所述的仿真系統,其特征在于,所述主設備為設置在計算機中的上位機仿真軟件,所述從設備為設置在仿真器主控板的主控固件。
【文檔編號】H04L1/18GK104038309SQ201310073143
【公開日】2014年9月10日 申請日期:2013年3月7日 優先權日:2013年3月7日
【發明者】周亞林, 潘松, 楊榮, 褚桂英 申請人:上海海爾集成電路有限公司