專利名稱:一種通過設(shè)備應(yīng)用接口進行測試及編程的方法
技術(shù)領(lǐng)域:
該發(fā)明涉及計算機通訊技術(shù)(包括USB、LAN、CAN、1394、SATA、PCIe、BLUETOOTH、WLAN、UWB、WUSB等通訊技術(shù))、微處理器/單片機、可編程器件等技術(shù)領(lǐng)域。
背景技術(shù):
早期的微處理器/單片機多采用外接程序及數(shù)據(jù)存儲器的方法以滿足不同的應(yīng)用要求,隨著半導(dǎo)體技術(shù)的發(fā)展及用戶對微處理器/單片機應(yīng)用系統(tǒng)集成度要求的提高,越來越多的微處理器/單片機逐漸向內(nèi)置程序及數(shù)據(jù)存儲器的方向發(fā)展,在這些微處理器/單片機系統(tǒng)的生產(chǎn)過程中,用戶需要用專用編程工具先對器件編程然后才能進行安裝焊 接組裝等加工工序,在最終產(chǎn)品狀態(tài),用戶無法對產(chǎn)品進行程序更改及升級等操作。近年來,一些微處理器/單片機開始向ISP (在系統(tǒng)編程)、IAP (在應(yīng)用編程)、JTAG (邊界掃描測試及編程)功能方向發(fā)展,使帶此功能的微處理器/單片機或可編程邏輯器件產(chǎn)品可以實現(xiàn)最終產(chǎn)品、最后工序編程或最終用戶遠程測試或固件編程、升級。但是目前具備ISP、IAP、JTAG測試或編程功能的微處理器/單片機或可編程邏輯器件的編程接口均是采用專用的簡單的通訊方式的電氣接口。例如一些8051內(nèi)核的單片機通過UART串口及RS232轉(zhuǎn)換電路與Pc (個人計算機)連接實現(xiàn)ISP/IAP功能;多數(shù)ARM內(nèi)核的微處理器或可編程邏輯器件通過JTAG (邊界掃描測試)接口與基于PC并行口的JTAG控制器連接,實現(xiàn)芯片邊界掃描測試及編程等功能。這些接口專用于編程、調(diào)試及測試,編程電纜包含專用電路及元器件、成本較高、較復(fù)雜且需要專門設(shè)計,在用戶應(yīng)用固件程序運行過程中一般不使用該接口,最終產(chǎn)品也很難保留該接口進行固件編程或升級。隨著計算機通訊技術(shù)的發(fā)展,這些簡單通訊方式接口已逐漸從PC端淘汰(大多數(shù)筆記本電腦已取消標準串行及并行電氣接口 ),逐漸被 USB/LAN/CAN/1394/SATA/PCIE/BLUET00TH/WLAN/UWB/WUSB等高效、高速及易連的接口取代。并且越來越多的微處理器/單片機或可編程邏輯器件也已集成了這些高效、高速及易連的通訊方式接口以適應(yīng)不同的應(yīng)用需求。甚至有些通訊方式規(guī)范已經(jīng)定義了程序升級的通訊協(xié)議(例如USB組織定義了 USB外設(shè)固件升級規(guī)范“USB Device Firmware Upgrade Specification,Revision I. I”),但是用戶需要開發(fā)編程工具軟件、固件程序甚至驅(qū)動程序等,協(xié)議較復(fù)雜且實現(xiàn)困難。目前也只局限于固件升級,沒有整合仿真、調(diào)試、測試、固件編程、升級等通信功能及用戶應(yīng)用通信功能,還沒有具體的簡單易行的系統(tǒng)實施方法。本說明書將以內(nèi)置USB/LAN/CAN/1394/SATA/PCIE/BLUET00TH/WLAN/UWB/WUSB 等通訊接口的微處理器/單片機為例,詳述如何通過微處理器/單片機或可編程邏輯器件的這些通訊接口在已有的微處理器/單片機或可編程邏輯器件仿真、調(diào)試、測試、固件編程方法基礎(chǔ)上實現(xiàn)仿真、調(diào)試、測試、編程通信功能及用戶應(yīng)用通信功能。
發(fā)明內(nèi)容
本發(fā)明可以利用現(xiàn)有PC端工具軟件及外設(shè)驅(qū)動程序?qū)崿F(xiàn)單一通訊接口的仿真、調(diào)試、測試、編程通信及應(yīng)用通信的多功能,本說明書著重于微處理器/單片機通過USB接口實現(xiàn)仿真、調(diào)試、測試、編程的方法,該方法也適用于帶LAN、CANU394, SATA、PCIE、BLUETOOTH、WLAN、UffB, WUSB等通訊方式接口的微處理器/單片機或可編程邏輯器件。本發(fā)明的實現(xiàn)方法為帶USB接口的微處理器/單片機或可編程邏輯器件通過USB電纜與PC連接時,其默認狀態(tài)是一個USB虛擬串口 /并口外設(shè)(Device)或其它可編程類外設(shè)(例如USB-JTAG適配器),用戶通過現(xiàn)有的PC端仿真、調(diào)試、測試、編程等工具軟件及USB虛擬串口 /并口或可編程類外設(shè)驅(qū)動程序?qū)崿F(xiàn)對微處理器/單片機或可編程邏輯器件的仿真、調(diào)試、測試、固件編程操作,完成仿真、調(diào)試、測試、編程后用戶可以通過PC端的編程工具軟件把微處理器/單片機或可編程邏輯器件設(shè)置為應(yīng)用狀態(tài),然后微處理器/單片機或可編程邏輯器件即工作于應(yīng)用狀態(tài)并運行用戶自己設(shè)計的應(yīng)用固件程序,此時微處理器/單片機或可編程邏輯器件作為一個用戶設(shè)計的應(yīng)用USB外設(shè)按照用戶的設(shè)計要求通過USB接口及相應(yīng)的應(yīng)用驅(qū)動程序?qū)崿F(xiàn)與PC或其它設(shè)備的連接通信。
當微處理器/單片機或可編程邏輯器件在應(yīng)用狀態(tài)時,如果用戶需要對微處理器/單片機或可編程邏輯器件進行仿真、調(diào)試、測試、編程或固件升級,用戶可以通過硬件設(shè)置(例如通過外設(shè)的開關(guān)、按鍵或固件命令設(shè)置)、或通過PC端的軟件工具用特殊命令(例如用USB組織發(fā)布的調(diào)試工具軟件發(fā)送特殊命令至該外設(shè),用戶不需要再設(shè)計專用軟件。注USB標準支持任意USB設(shè)備類的用戶自定義接口,所以用戶在設(shè)計應(yīng)用固件程序時可以預(yù)留一個自定義的特殊指令用于返回默認狀態(tài))把微處理器/單片機或可編程邏輯器件設(shè)置回默認狀態(tài),然后再實現(xiàn)在返回的默認狀態(tài)通過USB接口對微處理器/單片機或可編程邏輯器件進行仿真、調(diào)試、測試、編程或固件升級的操作。這樣就實現(xiàn)了單一接口的仿真、調(diào)試、測試、編程或固件升級通信及應(yīng)用通信的多功能,并且PC端的仿真、調(diào)試、測試、編程工具軟件及USB虛擬串口 /并口或可編程類外設(shè)驅(qū)動程序均可采用已經(jīng)成熟的現(xiàn)有軟件及驅(qū)動程序。極大地降低了整個系統(tǒng)地實現(xiàn)技術(shù)難度及經(jīng)濟成本。如果本發(fā)明被應(yīng)用于微處理器/單片機或可編程邏輯器件產(chǎn)品中,產(chǎn)品研發(fā)或生產(chǎn)的用戶就不需要為產(chǎn)品設(shè)計專用的仿真、調(diào)試、測試及編程接口及工具,也不需要開發(fā)專用的仿真、調(diào)試、編程軟件及驅(qū)動程序,只需利用產(chǎn)品本身的應(yīng)用通訊接口(例如USB接口)及已成熟的仿真、調(diào)試、測試、編程工具軟件及驅(qū)動,可以在最終產(chǎn)品出廠前才對產(chǎn)品進行編程,還可及時根據(jù)最終用戶的不同要求裝載不同的應(yīng)用固件程序,甚至最終用戶也可在此基礎(chǔ)上進行固件程序升級或進行二次開發(fā)并運行最終用戶自己設(shè)計的固件程序。本發(fā)明中涉及USB 接口的部分也適用于 LAN/CAN/1394/SATA/PCIe/BLUETOOTH/WLAN/UWB/WUSB等其它通訊方式接口。為了能表達清楚本發(fā)明的內(nèi)容,本說明書以USB通訊方式為例詳細說明本發(fā)明的內(nèi)容。
圖I本發(fā)明的第一實施方案系統(tǒng)結(jié)構(gòu)框圖。圖2本發(fā)明的第一實施方案的引導(dǎo)程序操作流程圖。圖3本發(fā)明的第一實施方案在默認狀態(tài)的程序操作流程圖。圖4本發(fā)明的第一實施方案在應(yīng)用狀態(tài)的程序操作流程圖。
圖5本發(fā)明的第二實施方案系統(tǒng)結(jié)構(gòu)框圖。圖6本發(fā)明的第二實施方案在應(yīng)用狀態(tài)的系統(tǒng)結(jié)構(gòu)及操作流程圖。圖7本發(fā)明的其它通訊方式實施方案系統(tǒng)結(jié)構(gòu)框圖。
具體實施例方式第一實施方案在圖I中,該USB接口的微處理器/單片機包含USB控制器、程序存儲器、數(shù)據(jù)存儲器、微處理器內(nèi)核、外圍接口電路及電源時鐘等六大部分。如圖2,該微處理器/單片機復(fù)位后程序指針首先指向弓I導(dǎo)程序存儲區(qū),并運行引導(dǎo)程序存儲區(qū)內(nèi)的引導(dǎo)程序,該程序管理整個微處理器/單片機系統(tǒng)內(nèi)的硬件、固件程序的運行,如果微處理器/單片機的外圍硬件設(shè)置條件或軟件設(shè)置條件滿足進入默認狀態(tài), 則程序指針指向默認程序存儲區(qū),并運行默認存儲區(qū)內(nèi)的默認程序,反之則程序指針指向用戶應(yīng)用程序存儲區(qū),并運行用戶應(yīng)用存儲區(qū)內(nèi)的應(yīng)用程序。如圖3,如果微處理器/單片機被設(shè)置為默認狀態(tài),當通過USB電纜與PC連接時,微處理器/單片機運行默認程序并作為一個虛擬串口 /并口或可編程外設(shè)完成與PC主機的枚舉,這時,如果用戶運行PC端仿真、調(diào)試、測試或編程工具軟件,就可以通過工具軟件對微處理器/單片機進行仿真、調(diào)試、測試、編程或狀態(tài)設(shè)置操作。一旦微處理器/單片機狀態(tài)被設(shè)置為應(yīng)用狀態(tài),則微處理器/單片機程序指針指向用戶應(yīng)用程序存儲區(qū)并進入用戶應(yīng)用狀態(tài)。如圖4,如果微處理器/單片機被設(shè)置為用戶應(yīng)用狀態(tài),當通過USB電纜與PC連接時,微處理器/單片機運行用戶應(yīng)用程序并作為一個用戶設(shè)計定義的USB外設(shè)完成與PC主機的枚舉,這時,該設(shè)備可以按照用戶的設(shè)計要求與PC端的應(yīng)用軟件進行數(shù)據(jù)傳輸。當用戶需要對該設(shè)備固件重新編程或升級時,仍然可以用硬件設(shè)置(例如通過外設(shè)的開關(guān)、按鍵或固件命令設(shè)置)、或通過PC端的軟件工具用特殊命令(可以用USB調(diào)試工具軟件發(fā)送特殊命令至該外設(shè))把微處理器/單片機設(shè)置回默認狀態(tài)。一旦微處理器/單片機狀態(tài)被設(shè)置為默認狀態(tài),則微處理器/單片機程序指針指向默認程序存儲區(qū)并進入默認狀態(tài)。這樣用戶就又可以對微處理器/單片機在默認狀態(tài)進行編程操作了。目前許多51內(nèi)核的單片機都具有通過串口 ISP/IAP的功能,這里以帶ISP/IAP功能的單片機為例詳細說明如何實施該發(fā)明。但并不表明本發(fā)明只適用于51內(nèi)核的單片機或USB通訊方式,該發(fā)明也適用于其它類型的微處理器/單片機(例如ARM7、ARM9等內(nèi)核的微處理器)及 LAN/CAN/1394/PCIe/SATA/BLUETOOTH/WLAN/UWB 等其它通訊方式。51內(nèi)核單片機連接USB控制器在默認狀態(tài)運行默認程序作為一個USB虛擬串口設(shè)備實現(xiàn)與PC系統(tǒng)的邏輯連接。PC端的編程工具軟件(可以采用已有的編程工具軟件)通過虛擬串口實現(xiàn)對該單片機的編程操作,完成編程后,用戶可以設(shè)置把單片機的狀態(tài)標志改為應(yīng)用狀態(tài)。然后單片機會退出默認狀態(tài)而進入應(yīng)用狀態(tài),斷開USB虛擬串口外設(shè)與PC主機的邏輯連接,重新作為一個用戶設(shè)計的應(yīng)用外設(shè)實現(xiàn)與PC主機的邏輯連接。在應(yīng)用狀態(tài),如果硬件設(shè)置條件滿足(例如通過開關(guān)、按鍵或應(yīng)用固件程序命令設(shè)置)、或軟件設(shè)置條件滿足(可以用USB調(diào)試工具軟件發(fā)送特殊命令至該外設(shè))單片機的狀態(tài)標志會被改變,單片機會斷開應(yīng)用外設(shè)與PC主機的邏輯連接,再進入默認狀態(tài)作為虛擬串口與PC主機邏輯連接并實現(xiàn)在該狀態(tài)下的固件編程。第二實施方案如圖5,該實施方案系統(tǒng)結(jié)構(gòu)框圖與方案一類似,在默認狀態(tài)時,系統(tǒng)操作流程與方案一相同;唯一不同是在應(yīng)用狀態(tài)時微處理器/單片機既運行默認固件程序也運行應(yīng)用固件程序,PC端同時連接一個邏輯USB HUB下的兩個邏輯外設(shè),一個是默認虛擬串口 /并口或可編程外設(shè),另一個是應(yīng)用外設(shè)。如圖6所示。在PC端的用戶應(yīng)用軟件操作應(yīng)用邏輯外設(shè)時,PC端的仿真、調(diào)試、測試及編程工具軟件也可以操作默認的虛擬串口 /并口或可編程外設(shè)。這樣本方案就可以實現(xiàn)系統(tǒng)直接在應(yīng)用狀態(tài)的仿真、調(diào)試、測試及編程操作。第三實施方案如圖7,該實施方案系統(tǒng)結(jié)構(gòu)框圖與方案一類似,只是把方案I中的USB控制器及USB 連接替換為 LAN、CAN、1394、PCIe、SATA BLUETOOTH、WLAN、UWB、WUSB 等通訊控制器及相 應(yīng)連接。該方案系統(tǒng)操作流程與方案一也相似(如圖2、3、4),只需把USB置換為對應(yīng)的其 它通訊方式;實施該方案仍然可以實現(xiàn)該發(fā)明的所有功能。
權(quán)利要求
1.一種可編程設(shè)備,該可編程設(shè)備包括程序存儲器、微處理器、通訊控制器等部分。其特征是該可編程設(shè)備可以是單個芯片、也可以多個芯片及元器件的組合、還可以是一個芯片或一個產(chǎn)品中的一部分;該可編程設(shè)備具有兩種狀態(tài),在默認狀態(tài)時,微處理器運行默認程序,控制和管理通訊控制器的通訊接口與其它設(shè)備連接通信,并接收其它設(shè)備的指令或數(shù)據(jù)對該可編程設(shè)備進行測試、調(diào)試或編程操作;在應(yīng)用狀態(tài)時,微處理器運行應(yīng)用程序或同時運行應(yīng)用程序及默認程序,按具體應(yīng)用要求控制和管理通訊控制器的通訊接口與其它設(shè)備連接通信并接收其它設(shè)備的指令或數(shù)據(jù),實現(xiàn)具體的應(yīng)用通信功能。
2.根據(jù)權(quán)利要求I所述的程序存儲器,其特征在于其至少包括默認程序存儲區(qū)及應(yīng)用程序存儲區(qū),或者包括分開的默認程序存儲器及應(yīng)用程序存儲器;應(yīng)用程序存儲區(qū)或應(yīng)用程序存儲器可以被可編程設(shè)備自己編程;微處理器運行默認程序存儲區(qū)或默認程序存儲器的程序可以對應(yīng)用程序存儲區(qū)或應(yīng)用程序存儲器甚至整個程序存儲器進行編程。
3.根據(jù)權(quán)利要求I所述的通訊控制器,其特征在于按照一定的通訊規(guī)范及協(xié)議實現(xiàn)設(shè)備與設(shè)備之間的連接通信,該通訊控制器的通訊方式可以是USB、LAN、CANU394, SATA、PCIe、BLUETOOTH、WLAN、UWB、WUSB等其中的一種,也可以是其它通訊方式。
4.根據(jù)權(quán)利要求I所述的微處理器,其特征在于其可以運行程序存儲器的程序?qū)崿F(xiàn)對與其連接的部件的邏輯控制,其可以是微處理器、微控制器、單片機、DSP或FPGA/CPLD等可編程邏輯器件。
5.根據(jù)權(quán)利要求I所述的默認程序,其特征在于其可以被固化于程序存儲器之中,不需要通過通訊接口在通信過程中對其編程或更改其內(nèi)容;微處理器運行該程序可以控制和管理通訊控制器實施默認的相關(guān)通訊協(xié)議并實現(xiàn)默認狀態(tài)的仿真、調(diào)試、測試或編程中的部分或全部功能。
6.根據(jù)權(quán)利要求I所述的應(yīng)用程序,其特征在于其所在存儲區(qū)域及內(nèi)容可以在通信過程中被更改或編程,微處理器運行該程序可以控制和管理通訊控制器實施應(yīng)用通訊協(xié)議并實現(xiàn)應(yīng)用狀態(tài)的所有功能。
7.根據(jù)權(quán)利要求I所述的一種可編程設(shè)備,其通過應(yīng)用接口進行測試或編程的方法,該方法的特征是在可編程設(shè)備中設(shè)定一個狀態(tài)標志,在可編程設(shè)備生產(chǎn)、測試或程序存儲器被擦除等初始條件下,首先固化默認程序于特定存儲區(qū)域并設(shè)定可編程設(shè)備處于默認狀態(tài),當該可編程設(shè)備通過其通訊控制器與其它設(shè)備連接時,該可編程設(shè)備運行其默認程序并按照默認的測試或編程的通訊協(xié)議與相連的設(shè)備進行數(shù)據(jù)通信。該可編程設(shè)備的狀態(tài)標志可以被與其連接的設(shè)備通過命令設(shè)置改變。一旦可編程設(shè)備的狀態(tài)標志被設(shè)定為應(yīng)用狀態(tài),該可編程設(shè)備即運行其應(yīng)用程序或同時運行應(yīng)用程序及默認程序并按照相應(yīng)通訊協(xié)議與相連的設(shè)備進行數(shù)據(jù)通信。
全文摘要
該發(fā)明涉及計算機通訊技術(shù)、微處理器/單片機及可編程器件等技術(shù)領(lǐng)域。本發(fā)明可以實現(xiàn)單一通訊接口的仿真、測試、調(diào)試或編程通信及應(yīng)用通信的多功能。該可編程設(shè)備包括程序存儲器、微處理器、通訊控制器等部分,其具有兩種狀態(tài),在默認狀態(tài)時,微處理器運行默認程序,控制和管理通訊控制器與其它設(shè)備連接并接收其它設(shè)備的指令或數(shù)據(jù)對該設(shè)備進行仿真、測試、調(diào)試或編程操作;在應(yīng)用狀態(tài)時,微處理器運行應(yīng)用程序或同時運行應(yīng)用程序及默認程序,按具體應(yīng)用要求控制和管理通訊控制器與其它設(shè)備連接并接收其它設(shè)備的指令或數(shù)據(jù),實現(xiàn)具體的應(yīng)用通信功能。
文檔編號G06F11/26GK102750214SQ20111009772
公開日2012年10月24日 申請日期2011年4月19日 優(yōu)先權(quán)日2011年4月19日
發(fā)明者郭陽勇, 郭陽斌 申請人:成都聯(lián)星微電子有限公司, 郭陽勇, 郭陽斌