專利名稱:Sparc v8監(jiān)控軟件中總線協(xié)議無關(guān)通信方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種總線協(xié)議無關(guān)的通信方法,尤其涉及在采用SPARC V8處理器的目標(biāo)機(jī)和采用PC機(jī)的宿主機(jī)之間實(shí)現(xiàn)總線協(xié)議無關(guān)的通信方法。
背景技術(shù):
對(duì)于嵌入式系統(tǒng)開發(fā)來說,監(jiān)控軟件在嵌入式系統(tǒng)的調(diào)試與應(yīng)用過程中具有重要的作用。一般監(jiān)控軟件的運(yùn)行模式是在宿主機(jī)上運(yùn)行一個(gè)控制臺(tái),在目標(biāo)機(jī)上運(yùn)行一個(gè)代理軟件,通過命令解析模塊把信息或數(shù)據(jù)傳送到目標(biāo)。代理和控制臺(tái)之間的信息交換需要用到通信總線,根據(jù)總線種類不同,通信協(xié)議也是不一樣的,因此信息交換過程中完成的數(shù)據(jù)交換和命令交換需要根據(jù)通信協(xié)議的不同制定不同的信息交換協(xié)議,這樣才能通過上位機(jī)去控制下位機(jī)的運(yùn)行。目前的作法是基于一種特定的總線,命令交互過程與總線協(xié)議密切相關(guān),這種一對(duì)一的通信方式不支持多種通信總線,需要根據(jù)總線類型的不同制定不同的通信協(xié)議和數(shù)據(jù)傳輸格式。目前的通信結(jié)構(gòu)如圖1所示。SPARC V8 (Scalable Processor Architecture V8) ^ SUN Microsystems
紀(jì)80年代提出的一種開放性的32位RISC處理器體系結(jié)構(gòu)。SPARC V8作為一種通用的處理器,應(yīng)用于多種不同的環(huán)境。以SPARC V8為處理器的目標(biāo)機(jī)和宿主機(jī)之間的通信總線有多種,因此,監(jiān)控軟件所涉及的目標(biāo)機(jī)和宿主機(jī)之間的通信協(xié)議必須適應(yīng)多種總線的通信要求,而目前一對(duì)一的總線通信方式限制了嵌入式系統(tǒng)開發(fā)的廣泛適應(yīng)性。
發(fā)明內(nèi)容
為了適應(yīng)各種類型的通信總線要求,提高系統(tǒng)開發(fā)效率,需要一種通用的與具體通信端口無關(guān)的通信協(xié)議,從而在不用改變數(shù)據(jù)結(jié)構(gòu)情況下達(dá)到適應(yīng)不同通信協(xié)議的目的。本發(fā)明提供一種總線協(xié)議無關(guān)的通信方法,用于在宿主機(jī)與目標(biāo)機(jī)之間建立與具體通信端口無關(guān)的命令驅(qū)動(dòng)式通信協(xié)議;所述宿主機(jī)包括文件管理與數(shù)據(jù)傳送模塊、協(xié)議命令處理模塊和各種總線通信處理模塊,其中文件管理與數(shù)據(jù)傳送模塊主要完成對(duì)文件的管理操作和對(duì)界面交互功能的識(shí)別與管理,協(xié)議命令處理模塊用于通信命令和數(shù)據(jù)的發(fā)送與接收;所述目標(biāo)機(jī)包括命令執(zhí)行與數(shù)據(jù)傳送模塊、命令解析模塊和各種總線通信處理模塊,其中命令執(zhí)行與數(shù)據(jù)傳送模塊用于在宿主機(jī)的控制下,將數(shù)據(jù)傳送到目標(biāo)機(jī)的指定區(qū)域,或?qū)⒛繕?biāo)機(jī)指定區(qū)域的數(shù)據(jù)傳給宿主機(jī),命令解析模塊用于完成各種通信協(xié)議命令的解析、執(zhí)行;其特征在于所述宿主機(jī)還包括設(shè)置在協(xié)議命令處理模塊與各種總線通信處理模塊之間的通信管理模塊,所述目標(biāo)機(jī)還包括設(shè)置在命令解析模塊與各種總線通信處理模塊之間的通信管理模塊,所述通信管理模塊設(shè)置了四個(gè)緩沖區(qū),分別為命令執(zhí)行緩沖區(qū)、命令接收緩沖區(qū)、數(shù)據(jù)執(zhí)行緩沖區(qū)、數(shù)據(jù)接收緩沖區(qū),并對(duì)具體的通信端口進(jìn)行管理;其中,所述目標(biāo)機(jī)的通信管理模塊解析通信命令的過程如下
3
(1)首先對(duì)目標(biāo)機(jī)做初始化,并初始化所有通信端口和緩沖區(qū),轉(zhuǎn)步驟O),進(jìn)入通信端口選擇過程;(2)在解析通信命令之前,首先對(duì)通信端口進(jìn)行識(shí)別,通信時(shí)采用自動(dòng)識(shí)別方法選擇通信端口,系統(tǒng)復(fù)位后假定所有通信通道都可能作為通信端口 ;如果需要接收串行數(shù)據(jù), 則按照預(yù)先設(shè)定的通道順序查詢各端口,首先查到數(shù)據(jù)的端口將被選擇為臨時(shí)端口 ;如果從臨時(shí)端口接收到一個(gè)正確的命令,則認(rèn)為收到該命令的通信通道就是當(dāng)前選擇的通信通道,并將當(dāng)前通道選擇標(biāo)志送給通信通道選擇標(biāo)志,完成通信通道的選擇;(3)識(shí)別到可用通信端口后,執(zhí)行命令解析過程;按照協(xié)議約定,宿主機(jī)送來的信息包分為緩沖命令包,立即命令包和數(shù)據(jù)命令包三種,命令包類型由所接收信息包的第一個(gè)字符確定;如果是緩沖命令包則執(zhí)行步驟G),數(shù)據(jù)命令包執(zhí)行步驟(5),立即命令包執(zhí)行步驟(6),其他轉(zhuǎn)步驟(7);(4)接收到緩沖命令包后,首先判斷命令長度和校驗(yàn)和是否正確,如果正確則將接收到的數(shù)據(jù)暫存到命令接收緩沖區(qū),當(dāng)宿主機(jī)通過校驗(yàn)命令確認(rèn)目標(biāo)機(jī)正確接收了緩沖命令后,再將其切換到命令執(zhí)行緩沖區(qū),并設(shè)置命令執(zhí)行緩沖區(qū)狀態(tài)為命令就緒狀態(tài)后轉(zhuǎn)步驟⑵;(5)接收到數(shù)據(jù)命令包后,將接收到的數(shù)據(jù)暫存到數(shù)據(jù)接收緩沖區(qū),當(dāng)宿主機(jī)通過校驗(yàn)命令確認(rèn)目標(biāo)機(jī)正確接收了該包數(shù)據(jù)后,設(shè)置數(shù)據(jù)接收緩沖區(qū)狀態(tài)為數(shù)據(jù)就緒狀態(tài)后轉(zhuǎn)步驟(7);通過一個(gè)命令將其切換到數(shù)據(jù)執(zhí)行緩沖區(qū),供緩沖命令執(zhí)行時(shí)使用;(6)接收到立即命令包后,根據(jù)命令包類型執(zhí)行不同的功能命令,同時(shí)給宿主機(jī)回送一個(gè)應(yīng)答包,并轉(zhuǎn)步驟(7);如果接收的是執(zhí)行緩沖區(qū)中命令的命令,則執(zhí)行命令緩沖區(qū)中存儲(chǔ)的緩沖命令,緩沖命令實(shí)現(xiàn)的功能包括擦除FLASH,上傳程序或數(shù)據(jù),下載目標(biāo)內(nèi)存的數(shù)據(jù),或轉(zhuǎn)移到指定地址去執(zhí)行程序,執(zhí)行完畢后轉(zhuǎn)步驟(7);(7)結(jié)束本次通信命令解析過程,轉(zhuǎn)步驟(2)。特別地,所述宿主機(jī)采用PC機(jī),所述目標(biāo)機(jī)采用SPARC V8處理器為CPU。采用本發(fā)明的總線協(xié)議無關(guān)的通信方法可以任意選擇一種通信總線,同時(shí)在目標(biāo)機(jī)和宿主機(jī)之間建立一種層次化的中間層,即一種虛擬通信協(xié)議,該協(xié)議采取一種命令應(yīng)答方式,命令處理與總線通信相互隔離,使得命令的擴(kuò)展更加方便。對(duì)于通信端口來說,命令協(xié)議可以自動(dòng)解析使用哪種端口進(jìn)行通信,同時(shí)可以屏蔽不同通信接口之間的差異性, 在宿主機(jī)與目標(biāo)機(jī)之間建立與具體通信端口無關(guān)的命令驅(qū)動(dòng)式通信協(xié)議,同時(shí)支持通信命令及串行通信接口的擴(kuò)展。
圖1是現(xiàn)有技術(shù)的目標(biāo)機(jī)與宿主機(jī)之間的通信結(jié)構(gòu)圖。圖2是協(xié)議傳輸?shù)暮喴驁D。圖3是本發(fā)明的監(jiān)控軟件的總體構(gòu)成與分層框圖。圖4是本發(fā)明的緩沖區(qū)數(shù)據(jù)流方向示意圖。圖5是本發(fā)明的目標(biāo)機(jī)解析通信命令的運(yùn)行過程圖。
具體實(shí)施方式
本實(shí)施方式的目標(biāo)機(jī)采用SPARC V8處理器為CPU,宿主機(jī)采用PC機(jī),通過155 總線、串行通信總線(UART)、CAN、SPI或SPACEWIRE等總線,對(duì)目標(biāo)機(jī)的內(nèi)存數(shù)據(jù)或程序進(jìn)行上傳加載和下載回傳,控制目標(biāo)機(jī)的程序執(zhí)行流程。宿主機(jī)與目標(biāo)機(jī)之間的命令、數(shù)據(jù)、 狀態(tài)應(yīng)答均采用協(xié)議包形式進(jìn)行傳送。通常情況下,總是由PC機(jī)首先向目標(biāo)機(jī)發(fā)送一個(gè)命令包,目標(biāo)機(jī)在正確收到命令包后,根據(jù)協(xié)議向PC機(jī)回送相應(yīng)的狀態(tài)應(yīng)答包。圖2是協(xié)議傳輸?shù)暮喴驁D。選擇使用何種總線建立宿主機(jī)和目標(biāo)機(jī)之間的通信,對(duì)于目標(biāo)機(jī)來說是透明的, 并且這種總線是可以變化的,只要符合接口需要就可以。本發(fā)明的具體做法是任意選擇一種通信總線,同時(shí)在目標(biāo)機(jī)和宿主機(jī)之間建立一種層次化的中間層,即一種虛擬通信協(xié)議, 該協(xié)議采取一種命令應(yīng)答方式,命令處理與總線通信相互隔離,這樣可以使得命令的擴(kuò)展更加方便。對(duì)于通信端口來說,通信協(xié)議可以自動(dòng)解析使用哪種端口進(jìn)行通信,同時(shí)可以屏蔽不同通信接口之間的差異性,在宿主機(jī)與目標(biāo)機(jī)之間建立與具體通信端口無關(guān)的命令驅(qū)動(dòng)式通信協(xié)議,同時(shí)支持通信命令及串行通信接口的擴(kuò)展。協(xié)議實(shí)現(xiàn)時(shí)主要由三部分組成運(yùn)行在PC機(jī)上的控制臺(tái)軟件(V8_Loader)、目標(biāo)上運(yùn)行的代理軟件(V8_Agent)及通信接口協(xié)議(CP)三部分組成,這三部分組成整個(gè)協(xié)議的監(jiān)控軟件。宿主機(jī)(PC)上運(yùn)行V8_Loader以完成通信接口選擇、文件管理、數(shù)據(jù)打包等功能,并按照通信協(xié)議與代理軟件進(jìn)行通信,完成數(shù)據(jù)上下傳;代理軟件運(yùn)行在以V8處理器為CPU的目標(biāo)機(jī)上,完成各種通信協(xié)議命令的解析、執(zhí)行,在控制臺(tái)軟件的控制下,將數(shù)據(jù)傳送到目標(biāo)機(jī)的指定區(qū)域,或?qū)⒛繕?biāo)機(jī)指定區(qū)域的數(shù)據(jù)傳給控制臺(tái)軟件;通信接口協(xié)議規(guī)定了控制臺(tái)軟件和代理軟件之間的通信格式及命令功能與格式。監(jiān)控軟件采用協(xié)議約束的分層實(shí)現(xiàn)方法和模塊化設(shè)計(jì)方法,圖3給出了監(jiān)控軟件的總體構(gòu)成與分層框圖。宿主機(jī)包括文件管理與數(shù)據(jù)傳送模塊、協(xié)議命令處理模塊、通信管理模塊和各種總線通信處理模塊,主要完成通信接口選擇、文件管理、數(shù)據(jù)打包等功能,并按照通信協(xié)議與目標(biāo)機(jī)進(jìn)行通信,完成數(shù)據(jù)上下傳。其中文件管理與數(shù)據(jù)傳送模塊主要完成對(duì)文件的管理操作(包括文件的長短設(shè)置、文件的起始位置邊界對(duì)齊、通信端口的打開與關(guān)閉操作等),和對(duì)界面交互功能的識(shí)別與管理,協(xié)議命令處理模塊用于通信命令和數(shù)據(jù)的發(fā)送與接收。底層通信管理模塊對(duì)具體的通信端口進(jìn)行管理,是整個(gè)協(xié)議的核心組成部分,一般的通信管理直接是命令解析模塊與底層的總線協(xié)議直接進(jìn)行通信,不經(jīng)過通信管理模塊。本發(fā)明的作法是在命令解析模塊與直接的總線協(xié)議之間設(shè)置通信管理模塊,通信管理模塊相當(dāng)于一個(gè)格式變換的緩沖區(qū),在擴(kuò)展不同的總線協(xié)議時(shí),只要遵從緩沖區(qū)的數(shù)據(jù)交互規(guī)范,數(shù)據(jù)直接存儲(chǔ)到緩沖區(qū)即可,從而可以滿足不同的總線通信協(xié)議,實(shí)際的緩沖區(qū)對(duì)于上層的命令解析模塊和底層的總線通信處理模塊來說是透明的。所述通信管理模塊設(shè)置了四個(gè)緩沖區(qū),分別為命令執(zhí)行緩沖區(qū)、命令接收緩沖區(qū)、數(shù)據(jù)執(zhí)行緩沖區(qū)、數(shù)據(jù)接收緩沖區(qū),并對(duì)具體的通信端口進(jìn)行管理。底層的各種通信總線可以直接發(fā)送數(shù)據(jù)到通信管理層,通信管理層通過對(duì)數(shù)據(jù)重組組成新的數(shù)據(jù)格式,直接提供給上層的模塊使用,因此通信管理模塊起到承上啟下的作用。目標(biāo)機(jī)包括命令執(zhí)行與數(shù)據(jù)傳送模塊、命令解析模塊、通信管理模塊和各種總線通信處理模塊。目標(biāo)機(jī)中的命令執(zhí)行與數(shù)據(jù)傳送模塊的主要作用是在宿主機(jī)的控制下,將數(shù)據(jù)傳送到目標(biāo)機(jī)的指定區(qū)域,或?qū)⒛繕?biāo)機(jī)指定區(qū)域的數(shù)據(jù)傳給宿主機(jī);命令解析模塊從通信層獲取命令,主要是完成各種通信協(xié)議命令的解析、執(zhí)行;通信管理模塊中設(shè)置的緩沖區(qū)可以是實(shí)際物理存在的,也可以是邏輯上虛擬的,虛擬的緩沖區(qū)利用起來更方便,便于管理。通信管理模塊按照字節(jié)順序向命令解析模塊提供協(xié)議包的數(shù)據(jù)流,命令解析模塊將底層的通信管理模塊看作是一個(gè)虛擬的串行通信接口,按規(guī)定的字節(jié)順序從其中接收和發(fā)送協(xié)議包。圖4是通信管理模塊與底層的總線通信處理模塊和上層的命令解析模塊之間的數(shù)據(jù)流方向示意圖。從圖中可以看出,該協(xié)議實(shí)現(xiàn)了一種多層次的協(xié)議與接口,將底層通信協(xié)議與頂層的命令處理隔離開來,使得監(jiān)控軟件從功能與通信的物理接口兩個(gè)方面都很容易進(jìn)行擴(kuò)展,并且互不影響。為了便于管理,對(duì)協(xié)議命令進(jìn)行了分類管理,把協(xié)議命令為分三種類型立即命令、緩沖命令和數(shù)據(jù)命令。這樣做的目的是因?yàn)楸O(jiān)控軟件對(duì)于不同的命令反應(yīng)在時(shí)效性是不一樣的。對(duì)于立即命令來說命令是實(shí)時(shí)的,需要馬上進(jìn)行執(zhí)行,信息量短;緩沖命令用于對(duì)可延時(shí)命令進(jìn)行延時(shí)管理,主要是對(duì)數(shù)據(jù)包進(jìn)行管理;數(shù)據(jù)命令主要用于對(duì)大量數(shù)據(jù)進(jìn)行數(shù)據(jù)包裝等。PC機(jī)的上行協(xié)議包提供上下傳的功能命令,分為緩沖命令包、立即命令包和數(shù)據(jù)包三類(a)緩沖命令包,主要提供上下傳的功能命令,上傳后先存在目標(biāo)機(jī)的緩沖區(qū)中, 待PC機(jī)發(fā)送執(zhí)行命令后才執(zhí)行;目標(biāo)機(jī)執(zhí)行完成后,只將執(zhí)行結(jié)果存儲(chǔ)在命令緩沖區(qū)中, 并不向PC機(jī)回送任何狀態(tài)信息,只在PC機(jī)使用查詢命令時(shí),才將緩沖區(qū)中的狀態(tài)信息作為查詢命令的應(yīng)答包送給PC機(jī)。(b)立即命令包,提供目標(biāo)機(jī)的控制、狀態(tài)查詢等功能,上傳后會(huì)立即執(zhí)行,目標(biāo)機(jī)也會(huì)在執(zhí)行完成后立即回送一個(gè)狀態(tài)應(yīng)答包。(c)數(shù)據(jù)包,主要是用來向目標(biāo)機(jī)注入功能命令的數(shù)據(jù)塊,目標(biāo)機(jī)接收后不回送任何應(yīng)答,只是將數(shù)據(jù)放在一個(gè)緩沖區(qū)中,并根據(jù)校驗(yàn)結(jié)果設(shè)置數(shù)據(jù)緩沖區(qū)的狀態(tài)。目標(biāo)機(jī)的下行協(xié)議包分為狀態(tài)應(yīng)答包和數(shù)據(jù)包兩種(a)狀態(tài)應(yīng)答包是對(duì)來自PC機(jī)的立即命令的響應(yīng)。對(duì)于立即命令,目標(biāo)機(jī)在命令校驗(yàn)正確后會(huì)立即執(zhí)行該命令,根據(jù)命令要求回送相應(yīng)的狀態(tài)應(yīng)答包。(b)數(shù)據(jù)包是功能命令的數(shù)據(jù)塊。PC機(jī)負(fù)責(zé)校驗(yàn)數(shù)據(jù)包的正確性,若不正確時(shí),可通過重新啟動(dòng)緩沖命令的執(zhí)行來重新獲取。不論上行還是下行,所有包的格式均如下前導(dǎo)字符,長度,包內(nèi)容,校驗(yàn)字節(jié)其中前導(dǎo)字符為一個(gè)ASCII字符,占用一個(gè)字節(jié);長度可為字節(jié),也可為字,表示了包內(nèi)容的字節(jié)數(shù);包內(nèi)容為命令或數(shù)據(jù),長度可變;校驗(yàn)字節(jié)是前導(dǎo)字符、長度、包內(nèi)容按字節(jié)異或的結(jié)果。在協(xié)議包傳送過程中,所有內(nèi)容均按字節(jié)傳送,16位字先傳送低字節(jié),后傳送高字節(jié);32位雙字,則按最低字節(jié)、次低字節(jié)、次高字節(jié)、最高字節(jié)的順序傳送。下面介紹PC機(jī)的功能命令。緩沖命令是實(shí)際的功能命令。目標(biāo)機(jī)收到后并不立即執(zhí)行,而是校驗(yàn)正確后,將命令暫存到接收緩沖區(qū),待PC機(jī)發(fā)出緩沖區(qū)切換命令后,再裝入執(zhí)行緩沖區(qū),等PC機(jī)發(fā)出執(zhí)行命令后才執(zhí)行。緩沖命令可以包括擦除命令、上傳命令、下傳命令、轉(zhuǎn)移命令等,根據(jù)需要可以添加不同的功能命令。其中擦除命令是指擦除FLASH中指定區(qū)域,或?qū)⒅付≧AM區(qū)域填為全0,因?yàn)?SPARCV8處理器可以掛接不同類型的存儲(chǔ)器,包括PROGRAM ROM(FLASH)、SRAM、DRAM等。擦除的起始地址必須在最小可擦除塊的邊界對(duì)齊;實(shí)現(xiàn)時(shí),若不滿足邊界對(duì)齊,可通過下傳命令先將多余的數(shù)據(jù)下載到PC機(jī),待擦除完成后,再上傳固化。上傳命令是將當(dāng)前執(zhí)行數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)傳送到指定區(qū)域,如果使用的V8處理器是32位的,那么上傳數(shù)據(jù)的目標(biāo)地址須在32位邊界對(duì)齊,上傳的數(shù)據(jù)長度必須為4的整數(shù)倍,如若不能滿足要求,則可通過下傳命令先將多余的數(shù)據(jù)下載到PC機(jī),與要上傳的數(shù)據(jù)拼接好再上傳。下載命令是將目標(biāo)機(jī)存儲(chǔ)器中指定區(qū)域的數(shù)據(jù)下傳到PC機(jī),可以指定下載的數(shù)據(jù)長度,起始地址可以是目標(biāo)機(jī)存儲(chǔ)器的任何位置。轉(zhuǎn)移命令可以強(qiáng)制目標(biāo)機(jī)轉(zhuǎn)移到指定地址執(zhí)行程序,同時(shí)轉(zhuǎn)移地址必須是32位雙字。命令類型的格式見表1。表格 1
緩沖區(qū)命令類型命令含義命令長度(B 代表字節(jié))命令內(nèi)容擦除命令擦除FLASH指定區(qū)域9B ', SA, LN, SA 和 LN 為 32 位雙字’ 分別表示擦除的起始地址和長度上傳命令將當(dāng)前執(zhí)行數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)傳送到指定區(qū)域9B'U',SA,LN, SA和LN為32位雙字,分別表示上傳數(shù)據(jù)的0標(biāo)地址和長度下載命令將目標(biāo)機(jī)存儲(chǔ)器中指定區(qū)域的數(shù)據(jù)下傳到PC機(jī)9B'D',SA,LN, SA和LN為32位雙字’分別表示下傳數(shù)據(jù)的起始地址和長度轉(zhuǎn)移命令強(qiáng)制目標(biāo)機(jī)轉(zhuǎn)移到指定地址執(zhí)行程序5B'J',DA, DA為32位雙字,表示H標(biāo)機(jī)的轉(zhuǎn)移地址數(shù)據(jù)命令用來向目標(biāo)機(jī)的接收數(shù)據(jù)緩沖區(qū)注入一個(gè)數(shù)據(jù)塊。目標(biāo)機(jī)上應(yīng)當(dāng)實(shí)現(xiàn)一個(gè)執(zhí)行數(shù)據(jù)緩沖區(qū)和一個(gè)接收數(shù)據(jù)緩沖區(qū)。執(zhí)行數(shù)據(jù)緩沖區(qū)是緩沖命令執(zhí)行時(shí)的數(shù)據(jù),而新收到的數(shù)據(jù)塊總是放入當(dāng)前的接收數(shù)據(jù)緩沖區(qū),PC機(jī)可通過切換命令實(shí)現(xiàn)接收數(shù)據(jù)緩沖區(qū)與執(zhí)行數(shù)據(jù)緩沖區(qū)的切換。每個(gè)數(shù)據(jù)緩沖區(qū)應(yīng)當(dāng)包括一個(gè)狀態(tài)指示器,表示數(shù)據(jù)是否已經(jīng)得到應(yīng)用、數(shù)據(jù)接收是否正確。立即命令是PC機(jī)對(duì)目標(biāo)機(jī)實(shí)現(xiàn)控制與狀態(tài)查詢的直接命令。目標(biāo)機(jī)收到此類命令,只要校驗(yàn)正確就立即執(zhí)行,并根據(jù)要求向PC機(jī)回送規(guī)定的響應(yīng)包。若校驗(yàn)不正確,目標(biāo)機(jī)將放棄信息包,不做任何響應(yīng)。若目標(biāo)機(jī)在接收命令中出現(xiàn)丟失字符的現(xiàn)象,PC機(jī)可通過發(fā)送無效字節(jié)來強(qiáng)迫目標(biāo)機(jī)退出命令接收狀態(tài),當(dāng)然也可以利用超時(shí)處理。立即命令的類型包括很多種,具體使用中可以根據(jù)需要添加和擴(kuò)展,立即命令的詳細(xì)說明見表2。表格權(quán)利要求
1.一種總線協(xié)議無關(guān)的通信方法,用于在宿主機(jī)與目標(biāo)機(jī)之間建立與具體通信端口無關(guān)的命令驅(qū)動(dòng)式通信協(xié)議;所述宿主機(jī)包括文件管理與數(shù)據(jù)傳送模塊、協(xié)議命令處理模塊和各種總線通信處理模塊,其中文件管理與數(shù)據(jù)傳送模塊主要完成對(duì)文件的管理操作和對(duì)界面交互功能的識(shí)別與管理,協(xié)議命令處理模塊用于通信命令和數(shù)據(jù)的發(fā)送與接收;所述目標(biāo)機(jī)包括命令執(zhí)行與數(shù)據(jù)傳送模塊、命令解析模塊和各種總線通信處理模塊,其中命令執(zhí)行與數(shù)據(jù)傳送模塊用于在宿主機(jī)的控制下,將數(shù)據(jù)傳送到目標(biāo)機(jī)的指定區(qū)域,或?qū)⒛繕?biāo)機(jī)指定區(qū)域的數(shù)據(jù)傳給宿主機(jī),命令解析模塊用于完成各種通信協(xié)議命令的解析、執(zhí)行;其特征在于所述宿主機(jī)還包括設(shè)置在協(xié)議命令處理模塊與各種總線通信處理模塊之間的通信管理模塊,所述目標(biāo)機(jī)還包括設(shè)置在命令解析模塊與各種總線通信處理模塊之間的通信管理模塊,所述通信管理模塊設(shè)置了四個(gè)緩沖區(qū),分別為命令執(zhí)行緩沖區(qū)、命令接收緩沖區(qū)、數(shù)據(jù)執(zhí)行緩沖區(qū)、數(shù)據(jù)接收緩沖區(qū),并對(duì)具體的通信端口進(jìn)行管理;其中,所述目標(biāo)機(jī)的通信管理模塊解析通信命令的過程如下(1)首先對(duì)目標(biāo)機(jī)做初始化,并初始化所有通信端口和緩沖區(qū),轉(zhuǎn)步驟0),進(jìn)入通信端口選擇過程;(2)在解析通信命令之前,首先對(duì)通信端口進(jìn)行識(shí)別,通信時(shí)采用自動(dòng)識(shí)別方法選擇通信端口,系統(tǒng)復(fù)位后假定所有通信通道都可能作為通信端口 ;如果需要接收串行數(shù)據(jù),則按照預(yù)先設(shè)定的通道順序查詢各端口,首先查到數(shù)據(jù)的端口將被選擇為臨時(shí)端口 ;如果從臨時(shí)端口接收到一個(gè)正確的命令,則認(rèn)為收到該命令的通信通道就是當(dāng)前選擇的通信通道, 并將當(dāng)前通道選擇標(biāo)志送給通信通道選擇標(biāo)志,完成通信通道的選擇;(3)識(shí)別到可用通信端口后,執(zhí)行命令解析過程;按照協(xié)議約定,宿主機(jī)送來的信息包分為緩沖命令包,立即命令包和數(shù)據(jù)命令包三種,命令包類型由所接收信息包的第一個(gè)字符確定;如果是緩沖命令包則執(zhí)行步驟G),數(shù)據(jù)命令包執(zhí)行步驟(5),立即命令包執(zhí)行步驟(6),其他轉(zhuǎn)步驟(7);(4)接收到緩沖命令包后,首先判斷命令長度和校驗(yàn)和是否正確,如果正確則將接收到的數(shù)據(jù)暫存到命令接收緩沖區(qū),當(dāng)宿主機(jī)通過校驗(yàn)命令確認(rèn)目標(biāo)機(jī)正確接收了緩沖命令后,再將其切換到命令執(zhí)行緩沖區(qū),并設(shè)置命令執(zhí)行緩沖區(qū)狀態(tài)為命令就緒狀態(tài)后轉(zhuǎn)步驟 (7);(5)接收到數(shù)據(jù)命令包后,將接收到的數(shù)據(jù)暫存到數(shù)據(jù)接收緩沖區(qū),當(dāng)宿主機(jī)通過校驗(yàn)命令確認(rèn)目標(biāo)機(jī)正確接收了該包數(shù)據(jù)后,設(shè)置數(shù)據(jù)接收緩沖區(qū)狀態(tài)為數(shù)據(jù)就緒狀態(tài)后轉(zhuǎn)步驟(7);通過一個(gè)命令將其切換到數(shù)據(jù)執(zhí)行緩沖區(qū),供緩沖命令執(zhí)行時(shí)使用;(6)接收到立即命令包后,根據(jù)命令包類型執(zhí)行不同的功能命令,同時(shí)給宿主機(jī)回送一個(gè)應(yīng)答包,并轉(zhuǎn)步驟(7);如果接收的是執(zhí)行緩沖區(qū)中命令的命令,則執(zhí)行命令緩沖區(qū)中存儲(chǔ)的緩沖命令,緩沖命令實(shí)現(xiàn)的功能包括擦除FLASH,上傳程序或數(shù)據(jù),下載目標(biāo)內(nèi)存的數(shù)據(jù),或轉(zhuǎn)移到指定地址去執(zhí)行程序,執(zhí)行完畢后轉(zhuǎn)步驟(7);(7)結(jié)束本次通信命令解析過程,轉(zhuǎn)步驟O)。
2.根據(jù)權(quán)利要求1所述的總線協(xié)議無關(guān)的通信方法,其特征在于所述宿主機(jī)采用PC 機(jī),所述目標(biāo)機(jī)采用SPARC V8處理器為CPU。
全文摘要
一種總線協(xié)議無關(guān)的通信方法,用于在宿主機(jī)與目標(biāo)機(jī)之間建立與具體通信端口無關(guān)的命令驅(qū)動(dòng)式通信協(xié)議;所述宿主機(jī)包括文件管理與數(shù)據(jù)傳送模塊、協(xié)議命令處理模塊和各種總線通信處理模塊;所述目標(biāo)機(jī)包括命令執(zhí)行與數(shù)據(jù)傳送模塊、命令解析模塊和各種總線通信處理模塊;其特征在于所述宿主機(jī)還包括設(shè)置在協(xié)議命令處理模塊與各種總線通信處理模塊之間的通信管理模塊,所述目標(biāo)機(jī)還包括設(shè)置在命令解析模塊與各種總線通信處理模塊之間的通信管理模塊,所述通信管理模塊設(shè)置了四個(gè)緩沖區(qū),分別為命令執(zhí)行緩沖區(qū)、命令接收緩沖區(qū)、數(shù)據(jù)執(zhí)行緩沖區(qū)、數(shù)據(jù)接收緩沖區(qū),并對(duì)具體的通信端口進(jìn)行管理。
文檔編號(hào)H04L29/06GK102215230SQ20111014688
公開日2011年10月12日 申請(qǐng)日期2011年6月2日 優(yōu)先權(quán)日2011年6月2日
發(fā)明者丁瑞, 關(guān)永, 尚媛園, 張偉功, 張永祥, 朱曉燕, 榮金葉, 辛明瑞, 邱慶林 申請(qǐng)人:首都師范大學(xué)