專利名稱:控制器程序碼的更新系統(tǒng)、具有所述更新系統(tǒng)的網(wǎng)絡(luò)存儲(chǔ)設(shè)備及其更新方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于一種更新系統(tǒng)及其更新方法,特別是有關(guān)于一 種依據(jù)兩線協(xié)議的控制器程序碼的更新系統(tǒng)及其更新方法,其透 過(guò)遠(yuǎn)端網(wǎng)絡(luò)執(zhí)行一更新命令以及接收一程序碼文件,以更新儲(chǔ)存 于一控制器內(nèi)的原始程序碼,本發(fā)明還涉及具有控制器程序碼的 更新系統(tǒng)的網(wǎng)絡(luò)存儲(chǔ)設(shè)備。
背景技術(shù):
隨著信息技術(shù)的成熟以及網(wǎng)絡(luò)通訊的快速發(fā)展,透過(guò)互聯(lián)網(wǎng) 絡(luò)存取數(shù)據(jù)的應(yīng)用非常普遍,例如用戶端電腦經(jīng)由網(wǎng)絡(luò)存取連接 于互聯(lián)網(wǎng)上分享出來(lái)網(wǎng)絡(luò)存儲(chǔ)裝置,例如附加式網(wǎng)絡(luò)存儲(chǔ)媒體
(Network Attached Storage, NAS)。然而為了要使所述網(wǎng)絡(luò)存儲(chǔ)裝
置具有更多的應(yīng)用范圍,需要修改其內(nèi)部的原始程序碼,亦即修 改網(wǎng)絡(luò)存儲(chǔ)裝置中單芯片執(zhí)行的程序碼,或者當(dāng)所述程序碼需要 除錯(cuò)而要重新燒錄新的程序碼時(shí),必須透過(guò)所述網(wǎng)絡(luò)存儲(chǔ)裝置內(nèi) 部的邊界掃描(Joint Test Action Group, JTAG)連接埠來(lái)修改原始 的程序碼或是將新的程序碼燒錄至單芯片中,導(dǎo)致其更新程序非 常地不方便。
換言之,在網(wǎng)絡(luò)存儲(chǔ)裝置的制造過(guò)程,為了更新單芯片內(nèi)的 程序碼,所述網(wǎng)絡(luò)存儲(chǔ)裝置的開發(fā)電路板設(shè)有JTAG連接埠,因 而占用開發(fā)電路板的可用面積。其次,在程序碼除錯(cuò)的過(guò)程中須將修正后的程序碼重復(fù)地?zé)浿了鰡涡酒?,直至程序碼通過(guò)測(cè) 試為止,因此開發(fā)人員必須購(gòu)置專用的燒錄器來(lái)燒錄修正后的程 序碼,成本較高。而且當(dāng)網(wǎng)絡(luò)存儲(chǔ)裝置出售給使用者之后,制造 廠商必須將燒錄的程序、燒錄工具以及使用方法教導(dǎo)使用者如何 操作使用,相當(dāng)不方便。此外,當(dāng)使用者欲更新單芯片的程序碼 時(shí),必須拆開網(wǎng)絡(luò)存儲(chǔ)裝置的外殼,才能進(jìn)行新程序碼的燒錄,
由于所述網(wǎng)絡(luò)存儲(chǔ)裝置出廠之后,JTAG連接埠被封在機(jī)殼內(nèi),非 常不便。因此需要發(fā)展一種新式的更新裝置以及更新方法。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是提供一種控制器程序碼的更新系統(tǒng)及其 更新方法,適用于網(wǎng)絡(luò)存儲(chǔ)設(shè)備,通過(guò)更新系統(tǒng)的兩個(gè)輸出/輸入 連接埠模擬兩線協(xié)議,以取代現(xiàn)有的JTAG連接埠,并且利用兩 個(gè)輸出/輸入連接埠載入一程序碼至所述控制器的非揮發(fā)性內(nèi)存。
本發(fā)明另一目的是提供一種控制器程序碼的更新系統(tǒng)及其更 新方法,適用于網(wǎng)絡(luò)存儲(chǔ)設(shè)備,使客戶透過(guò)網(wǎng)絡(luò)選擇所需要的程 序碼,并且利用所述兩線協(xié)議載入選定的程序碼燒錄文件,解決 客戶每次更新單芯片時(shí)必須借助制造廠商寄來(lái)的燒錄文件以及燒 錄工具且需要重復(fù)安裝燒錄的設(shè)定環(huán)境的問(wèn)題。
本發(fā)明又一目的是提供一種控制器程序碼的更新系統(tǒng)及其更 新方法,適用于網(wǎng)絡(luò)存儲(chǔ)設(shè)備,使客戶透過(guò)網(wǎng)絡(luò)選擇所需要的程 序碼,并且利用所述兩線協(xié)議載入選定的程序碼燒錄文件,避免 拆開產(chǎn)品才能更新單芯片的程序碼的問(wèn)題。
本發(fā)明所述的控制器程序碼的更新系統(tǒng)包括一主處理器以及 一控制器,主處理器經(jīng)由時(shí)鐘通道以及數(shù)據(jù)通道耦接于控制器。主處理器包括應(yīng)用程序單元、核心緩存、雙通道控制模塊以及通用輸入/輸出控制模塊。具體來(lái)說(shuō),應(yīng)用程序單元接收來(lái)自所述網(wǎng)絡(luò)的更新命令以及所述程序碼文件。核心緩存依據(jù)所述更新命令下載來(lái)自所述應(yīng)用程序單元的程序碼文件,并且儲(chǔ)存于所述核心緩存。雙通道控制模塊用以讀取儲(chǔ)存于所述核心緩存的程序碼文件,并且將所述程序碼文件轉(zhuǎn)換成一時(shí)鐘信號(hào)以及一數(shù)據(jù)信號(hào)。通用輸入/輸出控制模塊用以接收所述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào),并且具有一時(shí)鐘通道以及一數(shù)據(jù)通道,以分別傳送所述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào)至所述網(wǎng)絡(luò)存儲(chǔ)設(shè)備,以利用所述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào)來(lái)更新儲(chǔ)存于控制器內(nèi)的原始程序碼。
應(yīng)用程序單元更包括網(wǎng)絡(luò)界面模塊以及輸入/輸出控制模塊,網(wǎng)絡(luò)界面模塊耦接于所述網(wǎng)絡(luò),輸入/輸出控制模塊耦接所述網(wǎng)絡(luò)界面模塊至所述雙通道控制模塊。網(wǎng)絡(luò)界面模塊透過(guò)所述網(wǎng)絡(luò)與所述服務(wù)器以及所述用戶端電腦建立通信,以接收所述更新命令以及所述程序碼文件。輸入/輸出控制模塊用以傳送所述更新命令至所述雙通道控制模塊。
所述控制器更包括兩線協(xié)議模塊、程序化單元以及非揮發(fā)性內(nèi)存。兩線協(xié)議模塊分別接收來(lái)自所述時(shí)鐘通道以及所述數(shù)據(jù)通道的所述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào)。程序化單元具有一控制寄存器以及一數(shù)據(jù)寄存器,用以寫入所述更新命令至所述控制寄存器,以及寫入所述程序碼文件至所述數(shù)據(jù)寄存器。非揮發(fā)性內(nèi)存用以儲(chǔ)存具有所述原始程序碼,依據(jù)所述更新命令,所述程序化單元將所述程序碼文件寫入至所述非揮發(fā)性內(nèi)存,以覆蓋所述原始程序碼。
根據(jù)上述,控制器程序碼的更新系統(tǒng)的雙通道控制模塊經(jīng)由通用輸入/輸出控制模塊電性連接于具有兩線協(xié)議模塊的控制器,依據(jù)時(shí)鐘通道以及數(shù)據(jù)通道對(duì)控制器內(nèi)的快閃內(nèi)存進(jìn)行程序化的步驟,以取代快閃內(nèi)存內(nèi)的原始程序碼。亦即利用更新系統(tǒng)的兩個(gè)輸出/輸入連接埠來(lái)模擬時(shí)鐘通道以及數(shù)據(jù)通道,例如使用主處理器的通用型輸出/入連接埠來(lái)模擬兩線協(xié)議界面,使得主處理器與控制器進(jìn)行地址以及數(shù)據(jù)的通訊傳輸。本發(fā)明之更新方法包括下列步驟
(a) 對(duì)控制器程序碼的更新系統(tǒng)進(jìn)行初始化。
(b) 利用網(wǎng)絡(luò)服務(wù)代碼經(jīng)由網(wǎng)絡(luò)開啟控制器,使用戶端電腦與更新系統(tǒng)進(jìn)行通訊,以處于控制模式狀態(tài)。
(c) 應(yīng)用程序單元透過(guò)所述網(wǎng)絡(luò)接收來(lái)自所述服務(wù)器的一程
序碼文件以及來(lái)自所述用戶端電腦的更新命令。
(d) 應(yīng)用程序單元依據(jù)更新命令選擇一控制模式,包括寫入模式、擦除模式以及校正模式。
(dl)雙通道控制模塊依據(jù)更新命令將所述程序碼文件寫入至控制器的非揮發(fā)性內(nèi)存,亦即當(dāng)應(yīng)用程序單元接收所述更新命令時(shí),經(jīng)由所述時(shí)鐘通道傳送所述時(shí)鐘信號(hào)至控制器,同時(shí)依據(jù)所述時(shí)鐘信號(hào)經(jīng)由所述數(shù)據(jù)通道傳送所述程序碼文件至所述控制器,以更新所述控制器的非揮發(fā)性內(nèi)存內(nèi)的原始程序碼。
(d2)雙通道控制模塊依據(jù)更新命令擦除所述非揮發(fā)性內(nèi)存之內(nèi)的原始程序碼。
(d3)雙通道控制模塊依據(jù)更新命令計(jì)算所述非揮發(fā)性內(nèi)存之內(nèi)的程序碼文件的總和值,以檢查所述程序碼文件的正確性。當(dāng)所述程序碼文件的不正確時(shí),重置所述時(shí)鐘通道的時(shí)鐘信號(hào)。
(e) 更新系統(tǒng)傳回控制模式的操作信息以及執(zhí)行結(jié)果至用戶端電腦。
為讓本發(fā)明之上述內(nèi)容能更明顯易懂,下文特舉一較佳實(shí)施例,并配合所附圖式,作詳細(xì)說(shuō)明如下
圖1揭示依據(jù)本發(fā)明實(shí)施例中控制器的程序碼的更新系統(tǒng)的
方塊圖2揭示依據(jù)本發(fā)明圖1中控制器的程序碼的更新系統(tǒng)的詳細(xì)方塊圖3A揭示依據(jù)本發(fā)明圖2中雙通道控制模塊的型態(tài)模塊的示意圖3B揭示依據(jù)本發(fā)明圖2中雙通道控制模塊的寄存器單元的示意圖4揭示依據(jù)本發(fā)明圖2中控制器的詳細(xì)方塊圖。
第5A-5D圖揭示依據(jù)本發(fā)明實(shí)施例中通用輸入/輸出(GP10)
控制模塊模擬兩線協(xié)議的讀取/寫入時(shí)序圖6揭示依據(jù)本發(fā)明實(shí)施例中執(zhí)行控制器的程序碼的更新方
法的流程圖。主要元件符號(hào)說(shuō)明
100更新系統(tǒng)102用戶端電腦
104服務(wù)器106主處理器
108控制器110a時(shí)鐘通道
110b、p/_.門 、7^ 、>^ 數(shù)據(jù)通道112應(yīng)用程序單元
112a網(wǎng)絡(luò)界面模塊112b輸入/輸出控制模塊
114核心緩存116雙通道控制模塊116a型態(tài)模塊116b寄存器單元
118通用輸入/輸出控制模塊120a時(shí)鐘通道
120b數(shù)據(jù)通道122a控制寄存器
122b數(shù)據(jù)寄存器300擦除快閃內(nèi)存裝置
302擦除快閃內(nèi)存分頁(yè)304寫入快閃內(nèi)存區(qū)塊
306讀取快閃內(nèi)存區(qū)塊308寫入地址寄存器
310讀取地址寄存器312寫入數(shù)據(jù)寄存器
314讀取數(shù)據(jù)寄存器
具體實(shí)施例方式
圖1揭示依據(jù)本發(fā)明實(shí)施例中控制器程序碼的更新系統(tǒng)100的方塊圖。所述更新系統(tǒng)IOO透過(guò)網(wǎng)絡(luò)分別耦接于用戶端電腦102以及服務(wù)器104,主要包括一主處理器106以及控制器108。進(jìn)行更新時(shí),所述用戶端電腦102經(jīng)由網(wǎng)絡(luò)選取儲(chǔ)存于服務(wù)器104 —程序碼文件,并且發(fā)送一更新命令至更新系統(tǒng)100。接著更新系統(tǒng)100的主處理器106依據(jù)所述更新命令下載所述程序碼文件,并且透過(guò)一兩線協(xié)議(two-channel protocol),利用所述程序碼文件更新儲(chǔ)存于控制器102內(nèi)的原始程序碼。其中,程序碼文件譬如是可燒錄的執(zhí)行文件,所述兩線協(xié)議是指時(shí)鐘通道110a以及數(shù)據(jù)通道110b,用以分別傳送對(duì)應(yīng)于所述程序碼文件的時(shí)鐘信號(hào)以及數(shù)據(jù)信號(hào),以達(dá)到更新控制器108內(nèi)的程序碼的目的。在一實(shí)施例中,微控器108的兩線協(xié)議的時(shí)鐘通道110a連接于主處理器106的一通用輸入/輸出埠,且所述兩線協(xié)議的數(shù)據(jù)通道110b連接于主處理器106的另一通用輸入/輸出埠。本發(fā)明的控制器程序碼的更新系統(tǒng)100適用于附加式網(wǎng)絡(luò)存儲(chǔ)媒體(NAS),主處理器106譬如是型號(hào)CPU-8313E的處理器或是類似的處理器,而控制器108譬如是8051系列的單芯片或是類似的控制芯片,較佳實(shí)施例中,控制器108譬如是具有兩線協(xié)議的單芯片。更新系統(tǒng)100的技術(shù)內(nèi)容將于下文詳述。
圖2揭示依據(jù)本發(fā)明圖1中控制器程序碼的更新系統(tǒng)100的詳細(xì)方塊圖。更新系統(tǒng)100包括主處理器106以及控制器108,主處理器106經(jīng)由時(shí)鐘通道110a以及數(shù)據(jù)通道110b耦接于控制器108。主處理器106包括應(yīng)用程序單元112、核心緩存114、雙通道控制模塊 116 以及通用輸入/輸出(general purposeinput/output, GPIO)控制模塊118。應(yīng)用程序單元112經(jīng)由網(wǎng)絡(luò)耦接于用戶端電腦102以及服務(wù)器104,且應(yīng)用程序單元112分別耦接于核心緩存114以及雙通道控制模塊116,雙通道控制模塊116分別耦接于核心緩存114以及通用輸入/輸出(GPIO)控制模塊118,通用輸入/輸出(GPIO)控制模塊118耦接于控制器108。所述的網(wǎng)絡(luò)可以是有線如以線纜連接,或是無(wú)線網(wǎng)絡(luò)如符合藍(lán)牙(Bluetooth)規(guī)范的技術(shù);亦可為廣域網(wǎng)絡(luò)(WAN),如互聯(lián)網(wǎng)(Internet);或是局域網(wǎng)絡(luò)(LAN),如企業(yè)網(wǎng)絡(luò)(Intranet)或是以太網(wǎng)(Ethernet)。
具體來(lái)說(shuō),應(yīng)用程序單元112接收來(lái)自所述網(wǎng)絡(luò)的更新命令以及所述程序碼文件。核心緩存114依據(jù)所述更新命令下載來(lái)自所述應(yīng)用程序單元112的程序碼文件,并且儲(chǔ)存于核心緩存114。雙通道控制模塊116用以讀取儲(chǔ)存于核心緩存114的程序碼文件,并且將所述程序碼文件轉(zhuǎn)換成一時(shí)鐘信號(hào)以及一數(shù)據(jù)信號(hào)。通用輸入/輸出控制模塊118用以接收所述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào),并且具有時(shí)鐘通道110a以及數(shù)據(jù)通道110b,以分別傳送所述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào)至所述網(wǎng)絡(luò)存儲(chǔ)設(shè)備,以利用所述
時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào)來(lái)更新儲(chǔ)存于控制器108內(nèi)的原始程序碼。
應(yīng)用程序單元112更包括網(wǎng)絡(luò)界面模塊112a以及輸入/輸出控制模塊(IOCTL)112b,網(wǎng)絡(luò)界面模塊112a耦接于網(wǎng)絡(luò),輸入/輸出控制模塊112b耦接網(wǎng)絡(luò)界面模塊112a至雙通道控制模塊116。網(wǎng)絡(luò)界面模塊H2a透過(guò)網(wǎng)絡(luò)與服務(wù)器104以及用戶端電腦102建立通信,以接收所述更新命令以及所述程序碼文件。輸入/輸出控制模塊112b用以傳送所述更新命令至所述雙通道控制模塊116。
所述雙通道控制模塊116更包括型態(tài)模塊116a以及寄存器單元116b,以圖1分別配合參考圖3A以及圖3B。
參考圖3A,其揭示依據(jù)本發(fā)明圖2中雙通道控制模塊116的型態(tài)模塊的示意圖。型態(tài)模塊116a,耦接于所述輸入/輸出控制模塊112b,用以儲(chǔ)存所述控制器108的控制型態(tài),以管理非揮發(fā)性內(nèi)存的存取型態(tài)。所述控制器108的控制型態(tài)選自擦除快閃內(nèi)存裝置(erase flash device)300的型態(tài)、擦除快閃內(nèi)存分頁(yè)(erase flashpage)302的型態(tài)、寫入快閃內(nèi)存區(qū)塊(write flash block)304的型態(tài)以及讀取快閃內(nèi)存區(qū)塊(read flash block)306的型態(tài)所組成的型態(tài)中的一種。當(dāng)更新系統(tǒng)100依據(jù)更新命令的更新型態(tài)為擦除控制器102時(shí),則指定為擦除快閃內(nèi)存裝置300。當(dāng)更新系統(tǒng)100依據(jù)更新命令的更新型態(tài)為分頁(yè)擦除時(shí),則指定為寫入快閃內(nèi)存區(qū)塊304。當(dāng)更新系統(tǒng)100依據(jù)更新命令的更新型態(tài)為區(qū)塊寫入時(shí),則指定為讀取快閃內(nèi)存區(qū)塊306。
參考圖3B,其揭示依據(jù)本發(fā)明圖2中雙通道控制模塊的寄存器單元的示意圖。寄存器單元116b,耦接于所述型態(tài)模塊116a,具有復(fù)數(shù)個(gè)寄存器,依據(jù)所述更新命令讀取來(lái)自所述核心緩存114所述程序碼文件并且儲(chǔ)存于所述寄存器。在一實(shí)施例中,根據(jù)兩線協(xié)議,其中所述寄存器選自于寫入地址寄存器(write addressregister)308、讀取地址寄存器(read address register)310、寫入數(shù)據(jù)寄存器(write data register)312以及讀取數(shù)據(jù)寄存器(read dataregister)314中的一種。雙通道控制模塊116分析儲(chǔ)存于核心緩存112的程序碼文件,將欲寫入至控制器108的地址信息存放在寫入地址寄存器308,將欲讀取控制器108的地址信息存放在讀取地址寄存器310,將欲寫入至控制器108的數(shù)據(jù)存放在寫入數(shù)據(jù)寄存器312,以及將欲讀取控制器108的數(shù)據(jù)存放在讀取數(shù)據(jù)寄存器314。
所述控制器108更包括兩線協(xié)議模塊120、程序化單元122以及非揮發(fā)性內(nèi)存124。所述兩線協(xié)議模塊120耦接所述通用輸入/輸出控制模塊118至所述程序化單元122,且所述程序化單元122耦接于所述非揮發(fā)性內(nèi)存124。兩線協(xié)議模塊120分別接收來(lái)自所述時(shí)鐘通道110a以及所述數(shù)據(jù)通道110b所述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào)。程序化單元122具有控制寄存器122a以及數(shù)據(jù)寄存器122b,如圖4所示,用以寫入所述更新命令至所述控制寄存器122a,以及寫入所述程序碼文件至所述數(shù)據(jù)寄存器122b。非揮發(fā)性內(nèi)存124用以儲(chǔ)存具有所述原始程序碼,依據(jù)所述更新命令,所述程序化單元122將所述程序碼文件寫入至所述非揮發(fā)性內(nèi)存124,以覆蓋所述原始程序碼。非揮發(fā)性內(nèi)存124譬如是快閃內(nèi)存(flash memory)。
在一實(shí)施例中,所述程序化單元122依據(jù)所述更新命令,以擦除所述非揮發(fā)性內(nèi)存124之內(nèi)的原始程序碼。在另一實(shí)施例中, 所述程序化單元122依據(jù)所述更新命令,以計(jì)算所述非揮發(fā)性內(nèi) 存124之內(nèi)的程序碼文件的總和值(check sum),以檢査所述程序 碼文件的正確性。
根據(jù)上述,控制器程序碼的更新系統(tǒng)100的雙通道控制模塊 116經(jīng)由通用輸入/輸出控制模塊118電性連接于具有兩線協(xié)議模 塊120的控制器108,依據(jù)時(shí)鐘通道120a以及數(shù)據(jù)通道120b對(duì) 控制器108內(nèi)的快閃內(nèi)存124進(jìn)行程序化的步驟,以取代快閃內(nèi) 存124內(nèi)的原始程序碼。亦即利用更新系統(tǒng)100的兩個(gè)輸出/輸入 連接埠來(lái)模擬時(shí)鐘通道120a以及數(shù)據(jù)通道120b,例如使用主處 理器106的通用型輸出/入連接埠(GPIO)來(lái)模擬兩線協(xié)議界面,使 得主處理器106與控制器108進(jìn)行地址以及數(shù)據(jù)的通訊傳輸。
第5A-5D圖揭示依據(jù)本發(fā)明實(shí)施例中通用輸入/輸出(GP10) 控制模塊118模擬兩線協(xié)議的讀取/寫入時(shí)序圖。依據(jù)兩線協(xié)議, 當(dāng)更新系統(tǒng)100收到更新命令時(shí),控制寄存器單元114以及時(shí)鐘 來(lái)源118經(jīng)由時(shí)鐘通道120a以及數(shù)據(jù)通道120b分別輸出時(shí)鐘信 號(hào)"C2CK"以及數(shù)據(jù)信號(hào)"C2D"。
圖5A顯示地址寄存器的寫入時(shí)序,依據(jù)時(shí)鐘信號(hào)"C2CK", 數(shù)據(jù)信號(hào)"C2D"的時(shí)間區(qū)段依序?yàn)殚_始(START)區(qū)段、指令(INS) 區(qū)段、地址(ADDRESS)區(qū)段以及停止(STOP)區(qū)段。在一實(shí)施例中, 使數(shù)據(jù)無(wú)效致能。接著使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),且 其指定值為10(時(shí)間單位)。然后形成數(shù)據(jù)高準(zhǔn)位狀態(tài),再使數(shù)據(jù) 有效致能,接著使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),且其指定 值譬如是30(時(shí)間單位)。隨后形成數(shù)據(jù)高準(zhǔn)位狀態(tài),再使兩線協(xié) 議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),且其指定值為30(時(shí)間單位)。然后
17將寫入地址寄存器的地址參數(shù)經(jīng)由所述通用輸入/輸出控制模塊
118傳送至所述程序化單元122,且形成數(shù)據(jù)高準(zhǔn)位以及數(shù)據(jù)低準(zhǔn) 位。最后使數(shù)據(jù)無(wú)效致能,再使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟 動(dòng),完成雙通道結(jié)束訊號(hào)。
圖5B顯示地址寄存器的讀取時(shí)序,依據(jù)時(shí)鐘信號(hào)"C2CK", 數(shù)據(jù)信號(hào)"C2D"的時(shí)間區(qū)段依序?yàn)殚_始(START)區(qū)段、指令(INS) 區(qū)段、地址(ADDRESS)區(qū)段以及停止(STOP)區(qū)段。在一實(shí)施例中, 使數(shù)據(jù)無(wú)效致能。接著使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),且 其指定值為IO(時(shí)間單位)。然后形成數(shù)據(jù)低準(zhǔn)位狀態(tài),再使數(shù)據(jù) 有效致能,接著使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),且其指定 值譬如是30(時(shí)間單位)。隨后形成數(shù)據(jù)高準(zhǔn)位狀態(tài),再使兩線協(xié) 議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),且其指定值為30(時(shí)間單位)。然后 將來(lái)自所述通用輸入/輸出控制模塊118傳送至讀取地址寄存器。 最后使數(shù)據(jù)無(wú)效致能,再使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),. 完成雙通道結(jié)束訊號(hào),返回地址參數(shù)。
圖5C顯示數(shù)據(jù)寄存器的寫入時(shí)序,依據(jù)時(shí)鐘信號(hào)"C2CK", 數(shù)據(jù)信號(hào)"C2D"的時(shí)間區(qū)段依序?yàn)殚_始(START)區(qū)段、指令(INS) 區(qū)段、數(shù)據(jù)長(zhǎng)度(LENGTH)區(qū)段、數(shù)據(jù)(DATA)區(qū)段、等待(WAIT) 區(qū)段以及停止(STOP)區(qū)段。在一實(shí)施例中,使數(shù)據(jù)無(wú)效致能。接 著使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),且其指定值為IO(時(shí)間單 位)。然后形成數(shù)據(jù)高準(zhǔn)位狀態(tài),再使數(shù)據(jù)有效致能,接著使兩線 協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),且其指定值譬如是30(時(shí)間單位)。 隨后形成數(shù)據(jù)低準(zhǔn)位狀態(tài),再使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟 動(dòng),且其指定值為30(時(shí)間單位)。然后形成數(shù)據(jù)低準(zhǔn)位狀態(tài),再 使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),且其指定值為20(時(shí)間單位);形成數(shù)據(jù)低準(zhǔn)位狀態(tài),再使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟 動(dòng),且其指定值為20(時(shí)間單位)。然后將寫入地址寄存器的數(shù)據(jù) 參數(shù)經(jīng)由通用輸入/輸出控制模塊118傳送至所述程序化單元 122,且形成數(shù)據(jù)高準(zhǔn)位以及數(shù)據(jù)低準(zhǔn)位。接著使數(shù)據(jù)無(wú)效致能, 再持續(xù)使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng)。最后使數(shù)據(jù)無(wú)效致 能,再使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),完成雙通道結(jié)束訊 號(hào)。
圖5D顯示數(shù)據(jù)寄存器的讀取時(shí)序中,依據(jù)時(shí)鐘信號(hào)"C2CK", 數(shù)據(jù)信號(hào)"C2D"的時(shí)間區(qū)段依序?yàn)殚_始(START)區(qū)段、指令(INS) 區(qū)段、數(shù)據(jù)長(zhǎng)度(LENGTH)區(qū)段、等待(WAIT)區(qū)段、數(shù)據(jù)(DATA) 區(qū)段以及停止(STOP)區(qū)段。在一實(shí)施例中,使數(shù)據(jù)無(wú)效致能。接 著使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),且其指定值為IO(時(shí)間單 位)。然后形成數(shù)據(jù)低準(zhǔn)位狀態(tài),再使數(shù)據(jù)有效致能,接著使兩線 協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),且其指定值譬如是30(時(shí)間單位)。 隨后形成數(shù)據(jù)低準(zhǔn)位狀態(tài),再使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟 動(dòng),且其指定值為30(時(shí)間單位)。然后形成數(shù)據(jù)低準(zhǔn)位狀態(tài),再 使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng),且其指定值為20(時(shí)間單 位);形成數(shù)據(jù)低準(zhǔn)位狀態(tài),再使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟 動(dòng),且其指定值為20(時(shí)間單位)。接著使數(shù)據(jù)無(wú)效致能,再持續(xù) 使兩線協(xié)議模塊的時(shí)鐘信號(hào)開閘啟動(dòng)。然后將寫入地址寄存器的 數(shù)據(jù)參數(shù)經(jīng)由通用輸入/輸出控制模塊118傳送至所述程序化單元 122。最后使數(shù)據(jù)無(wú)效致能,再使兩線協(xié)議模塊之時(shí)鐘信號(hào)開閘啟 動(dòng),完成雙通道結(jié)束訊號(hào),返回?cái)?shù)據(jù)參數(shù)。
根據(jù)上述,本發(fā)明的控制器的程序碼的更新系統(tǒng)通過(guò)兩線協(xié) 議界面,并且依據(jù)時(shí)鐘通道120a以及數(shù)據(jù)通道120b對(duì)控制器內(nèi)
19的快閃內(nèi)存126進(jìn)行程序化的步驟,以取代快閃內(nèi)存126內(nèi)的原 始程序碼?;蚴峭ㄟ^(guò)更新系統(tǒng)的兩個(gè)輸出/輸入連接埠模擬兩線協(xié) 議,以載入一程序碼至所述控制器的非揮發(fā)性內(nèi)存。本發(fā)明適用 于一般的操作系統(tǒng),例如LINUX系統(tǒng)或是類似的系統(tǒng)。
參考圖1、圖2以及圖6,圖6揭示依據(jù)本發(fā)明實(shí)施例中執(zhí)行 控制器的程序碼的更新方法的流程圖。本發(fā)明的控制器的程序碼 的更新方法適用于網(wǎng)絡(luò)存儲(chǔ)設(shè)備,所述網(wǎng)絡(luò)存儲(chǔ)設(shè)備透過(guò)網(wǎng)絡(luò)耦 接于服務(wù)器104以及用戶端電腦102,所述用戶端電腦102發(fā)送 一更新命令,所述更新方法包括下列步驟
在步驟S500中,對(duì)控制器的程序碼的更新系統(tǒng)100的雙通道 控制模塊116進(jìn)行初始化。
在步驟S502中,利用網(wǎng)絡(luò)服務(wù)代碼經(jīng)由網(wǎng)絡(luò)開啟控制器108, 使用戶端電腦102與更新系統(tǒng)100進(jìn)行通訊,以處于控制模式狀 態(tài)。若未開啟控制器108,則退出更新系統(tǒng)100的雙通道控制模 塊116。
在步驟S504中,應(yīng)用程序單元112透過(guò)所述網(wǎng)絡(luò)接收來(lái)自所 述服務(wù)器104的一程序碼文件以及來(lái)自所述用戶端電腦102的更 新命令。
在步驟S506中,應(yīng)用程序單元112依據(jù)更新命令選擇一控制 模式,包括寫入模式、擦除模式以及校正模式。
在步驟S506a的寫入模式中,雙通道控制模塊116依據(jù)更新 命令將所述程序碼文件寫入至控制器108的非揮發(fā)性內(nèi)存124, 亦即當(dāng)應(yīng)用程序單元112接收所述更新命令時(shí),經(jīng)由所述時(shí)鐘通 道傳送所述時(shí)鐘信號(hào)至控制器108,同時(shí)依據(jù)所述時(shí)鐘信號(hào)經(jīng)由 所述數(shù)據(jù)通道傳送所述程序碼文件至所述控制器108,以更新所述控制器108的非揮發(fā)性內(nèi)存124內(nèi)的原始程序碼。在一實(shí)施例 中,雙通道控制模塊116分批次讀取核心緩存114內(nèi)的數(shù)據(jù)至寄 存器單元116b中,然后依序?qū)⒓拇嫫鲉卧?16b內(nèi)的數(shù)據(jù)寫入至 非揮發(fā)性內(nèi)存124,直至讀完核心緩存114內(nèi)的數(shù)據(jù)為止。完成 寫入步驟S506a之后,關(guān)閉控制器108并且退出更新系統(tǒng)100。
在步驟S506b之擦除模式中,雙通道控制模塊116依據(jù)更新 命令擦除所述非揮發(fā)性內(nèi)存124之內(nèi)的原始程序碼。完成擦除步 驟S506b之后,關(guān)閉控制器108。
在步驟S506c之校正模式中,雙通道控制模塊116依據(jù)更新 命令計(jì)算所述非揮發(fā)性內(nèi)存124之內(nèi)的程序碼文件的總和值,以 檢査所述程序碼文件的正確性。當(dāng)所述程序碼文件的不正確時(shí), 重置所述時(shí)鐘通道的時(shí)鐘信號(hào)。完成校正步驟S506c之后,關(guān)閉 控制器108。
在步驟S508中,更新系統(tǒng)IOO傳回控制模式的操作信息以及 執(zhí)行結(jié)果至用戶端電腦102。
本發(fā)明特點(diǎn)包括(l)透過(guò)網(wǎng)絡(luò)以遠(yuǎn)端方式更新控制器的原始 程序碼;(2)具有燒錄程序碼數(shù)據(jù)的功能,無(wú)須使用額外的燒錄器, 節(jié)約了開發(fā)和使用成本;(3)解決客戶每次更新單芯片時(shí)必須借助 制造廠商寄來(lái)的燒錄數(shù)據(jù)以及燒錄工具且需要重復(fù)安裝燒錄的設(shè) 定環(huán)境的問(wèn)題;以及(4)客戶利用兩線技術(shù)載入選定的程序碼燒錄 數(shù)據(jù),避免拆開產(chǎn)品的問(wèn)題。
雖然本發(fā)明已用較佳實(shí)施例揭露如上,然其并非用以限定本 發(fā)明,本發(fā)明所屬技術(shù)領(lǐng)域中的技術(shù)人員,在不脫離本發(fā)明之精 神和范圍內(nèi),當(dāng)可作各種變動(dòng)與潤(rùn)飾,因此本發(fā)明之保護(hù)范圍當(dāng) 以權(quán)利要求為準(zhǔn)。
權(quán)利要求
1. 一種控制器程序碼的更新系統(tǒng),設(shè)置于一網(wǎng)絡(luò)存儲(chǔ)設(shè)備內(nèi),所述網(wǎng)絡(luò)存儲(chǔ)設(shè)備透過(guò)一網(wǎng)絡(luò)耦接于一服務(wù)器以及一用戶端電腦,所述用戶端電腦發(fā)送一更新命令,使所述網(wǎng)絡(luò)存儲(chǔ)設(shè)備透過(guò)所述網(wǎng)絡(luò)接收來(lái)自所述服務(wù)器的一程序碼文件,所述更新系統(tǒng)包括一應(yīng)用程序單元,接收來(lái)自所述網(wǎng)絡(luò)的更新命令以及所述程序碼文件;一核心緩存,依據(jù)所述更新命令下載來(lái)自所述應(yīng)用程序單元的程序碼文件,并且儲(chǔ)存于所述核心緩存;一雙通道控制模塊,分別耦接于所述應(yīng)用程序單元以及所述核心緩存,用以讀取儲(chǔ)存于所述核心緩存的所述程序碼文件,并且將所述程序碼文件轉(zhuǎn)換成一時(shí)鐘信號(hào)以及一數(shù)據(jù)信號(hào);以及一通用輸入/輸出控制模塊,用以接收所述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào),并且具有一時(shí)鐘通道以及一數(shù)據(jù)通道,以分別傳送所述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào)至所述網(wǎng)絡(luò)存儲(chǔ)設(shè)備,利用所述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào),以更新儲(chǔ)存于該控制器內(nèi)的原始程序碼。
2. 如權(quán)利要求1所述的更新系統(tǒng),其特征在于,所述應(yīng)用程 序單元更包括一網(wǎng)絡(luò)界面模塊,透過(guò)所述網(wǎng)絡(luò)與所述服務(wù)器以及所述用戶 端電腦建立通信,以接收所述更新命令以及所述程序碼文件;以 及一輸入/輸出控制模塊,用以傳送所述更新命令至所述雙通道控制模塊。
3. 如權(quán)利要求2所述的更新系統(tǒng),其特征在于,所述雙通道 控制模塊更包括.-一型態(tài)模塊,耦接于所述輸入/輸出控制模塊,用以儲(chǔ)存所述 控制器的一控制型態(tài);以及一寄存器單元,耦接于所述型態(tài)模塊,具有復(fù)數(shù)個(gè)寄存器, 依據(jù)所述更新命令讀取來(lái)自所述核心緩存的程序碼文件并且儲(chǔ)存 于這些寄存器。
4. 如權(quán)利要求3所述的更新系統(tǒng),其特征在于,所述控制器 的控制型態(tài)選自于擦除快閃內(nèi)存裝置的型態(tài)、擦除快閃內(nèi)存分頁(yè) 的型態(tài)、寫入快閃內(nèi)存區(qū)塊的型態(tài)以及讀取快閃內(nèi)存區(qū)塊的型態(tài) 所組成的型態(tài)中的一種。
5. 如權(quán)利要求3所述的更新系統(tǒng),其特征在于,所述寄存器 單元的寄存器選自于寫入地址寄存器、讀取地址寄存器、寫入數(shù) 據(jù)寄存器以及讀取數(shù)據(jù)寄存器中的一種。
6. 如權(quán)利要求3所述的更新系統(tǒng),其特征在于,所述控制器 更包括一兩線協(xié)議模塊,耦接于所述通用輸入/輸出控制模塊,分別 接收來(lái)自所述時(shí)鐘通道以及所述數(shù)據(jù)通道的時(shí)鐘信號(hào)以及數(shù)據(jù)信 號(hào);一程序化單元,耦接于所述兩線協(xié)議模塊,具有一控制寄存 器以及一數(shù)據(jù)寄存器,用以寫入所述更新命令至所述控制寄存器, 以及寫入所述程序碼文件至所述數(shù)據(jù)寄存器;以及一非揮發(fā)性內(nèi)存,具有所述原始程序碼,依據(jù)所述更新命令, 所述程序化單元將所述程序碼文件寫入至所述非揮發(fā)性內(nèi)存,以覆蓋所述原始程序碼。
7. 如權(quán)利要求6所述的更新系統(tǒng),其特征在于,所述程序化 單元依據(jù)所述更新命令,以擦除所述非揮發(fā)性內(nèi)存之內(nèi)的原始程 序碼。
8. 如權(quán)利要求6所述的更新系統(tǒng),其特征在于,所述程序化 單元依據(jù)所述更新命令,以計(jì)算所述非揮發(fā)性內(nèi)存之內(nèi)的程序碼 文件的總和值,以檢査所述程序碼文件的正確性。
9. 如權(quán)利要求6所述的更新系統(tǒng),其特征在于,當(dāng)所述程序 碼文件的不正確時(shí),所述雙通道控制模塊重置所述時(shí)鐘通道的時(shí) 鐘信號(hào)。
10. —種具有控制器的程序碼的更新系統(tǒng)的網(wǎng)絡(luò)存儲(chǔ)設(shè)備, 所述網(wǎng)絡(luò)存儲(chǔ)設(shè)備透過(guò)一網(wǎng)絡(luò)耦接于一服務(wù)器以及一用戶端電 腦,所述用戶端電腦發(fā)送一更新命令,使所述網(wǎng)絡(luò)存儲(chǔ)設(shè)備透過(guò) 所述網(wǎng)絡(luò)接收來(lái)自所述服務(wù)器的一程序碼文件,所述網(wǎng)絡(luò)存儲(chǔ)設(shè) 備包括一應(yīng)用程序單元,接收來(lái)自所述網(wǎng)絡(luò)的所述更新命令以及所 述程序碼文件;一核心緩存,依據(jù)所述更新命令下載來(lái)自所述應(yīng)用程序單元 的所述程序碼文件,并且儲(chǔ)存于所述核心緩存;一雙通道控制模塊,分別耦接于所述應(yīng)用程序單元以及所述 核心緩存,用以讀取儲(chǔ)存于所述核心緩存的所述程序碼文件,并 且將所述程序碼文件轉(zhuǎn)換成一時(shí)鐘信號(hào)以及一數(shù)據(jù)信號(hào);以及一通用輸入/輸出控制模塊,用以接收所述時(shí)鐘信號(hào)以及所述 數(shù)據(jù)信號(hào),并且具有一時(shí)鐘通道以及一數(shù)據(jù)通道,以分別傳送所 述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào)至所述網(wǎng)絡(luò)存儲(chǔ)設(shè)備,利用所述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào),以更新儲(chǔ)存于一控制器內(nèi)的原始程序 碼。
11. 如權(quán)利要求10所述的網(wǎng)絡(luò)存儲(chǔ)設(shè)備,其特征在于,所述應(yīng)用程序單元更包括一網(wǎng)絡(luò)界面模塊,透過(guò)所述網(wǎng)絡(luò)與所述服務(wù)器以及所述用戶 端電腦建立通信,以接收所述更新命令以及所述程序碼文件;以 及一輸入/輸出控制模塊,用以傳送所述更新命令至所述雙通道 控制模塊。
12. 如權(quán)利要求11所述的網(wǎng)絡(luò)存儲(chǔ)設(shè)備,其特征在于,所述 雙通道控制模塊更包括一型態(tài)模塊,耦接于所述輸入/輸出控制模塊,用以儲(chǔ)存所述 控制器的一控制型態(tài);以及一寄存器單元,耦接于所述型態(tài)模塊,具有復(fù)數(shù)個(gè)寄存器, 依據(jù)所述更新命令讀取來(lái)自所述核心緩存的程序碼文件并且儲(chǔ)存 于這些寄存器。
13. 如權(quán)利要求12所述的網(wǎng)絡(luò)存儲(chǔ)設(shè)備,其特征在于,所述 控制器的所述控制型態(tài)系選自于擦除快閃內(nèi)存裝置的型態(tài)、擦除 快閃內(nèi)存分頁(yè)的型態(tài)、寫入快閃內(nèi)存區(qū)塊的型態(tài)以及讀取快閃內(nèi) 存區(qū)塊的型態(tài)所組成的型態(tài)中的一種。
14. 如權(quán)利要求12所述的網(wǎng)絡(luò)存儲(chǔ)設(shè)備,其特征在于,所述 寄存器單元的寄存器選自于寫入地址寄存器、讀取地址寄存器、 寫入數(shù)據(jù)寄存器以及讀取數(shù)據(jù)寄存器中的一種。
15. 如權(quán)利要求12所述的網(wǎng)絡(luò)存儲(chǔ)設(shè)備,其特征在于,所述 控制器更包括一兩線協(xié)議模塊,耦接于所述通用輸入/輸出控制模塊,分別 接收來(lái)自所述時(shí)鐘通道以及所述數(shù)據(jù)通道的時(shí)鐘信號(hào)以及數(shù)據(jù)信號(hào);一程序化單元,耦接于所述兩線協(xié)議模塊,具有一控制寄存 器以及一數(shù)據(jù)寄存器,用以寫入所述更新命令至所述控制寄存器, 以及寫入所述程序碼文件至所述數(shù)據(jù)寄存器;以及'一非揮發(fā)性內(nèi)存,具有原始程序碼,依據(jù)所述更新命令,所 述程序化單元將所述程序碼文件寫入至所述非揮發(fā)性內(nèi)存,以覆 蓋所述原始程序碼。
16. 如權(quán)利要求15所述的網(wǎng)絡(luò)存儲(chǔ)設(shè)備,其特征在于,所述 程序化單元依據(jù)所述更新命令,以擦除所述非揮發(fā)性內(nèi)存之內(nèi)的 原始程序碼。
17. 如權(quán)利要求15所述的網(wǎng)絡(luò)存儲(chǔ)設(shè)備,其特征在于,所述 程序化單元依據(jù)所述更新命令,以計(jì)算所述非揮發(fā)性內(nèi)存之內(nèi)的 程序碼文件的總和值,以檢査所述程序碼文件的正確性。
18. —種控制器程序碼的更新方法,適用于一網(wǎng)絡(luò)存儲(chǔ)設(shè)備, 所述網(wǎng)絡(luò)存儲(chǔ)設(shè)備透過(guò)網(wǎng)絡(luò)耦接于一服務(wù)器以及一用戶端電腦, 所述用戶端電腦發(fā)送一更新命令至所述網(wǎng)絡(luò)存儲(chǔ)設(shè)備,所述更新 方法包括下列步驟進(jìn)行一更新系統(tǒng)的初始化;透過(guò)所述網(wǎng)絡(luò)接收來(lái)自所述服務(wù)器的程序碼文件以及來(lái)自所 述用戶端電腦的更新命令;依據(jù)所述更新命令選擇一控制模式,所述控制模式包括寫入 模式、擦除模式以及校正模式;以及當(dāng)處于所述寫入模式,且所述更新系統(tǒng)接收所述更新命令時(shí),經(jīng)由一時(shí)鐘通道傳送一時(shí)鐘信號(hào)至所述更新系統(tǒng)的控制器,同時(shí) 依據(jù)所述時(shí)鐘信號(hào)經(jīng)由所述數(shù)據(jù)通道傳送所述程序碼文件至所述 控制器,以更新所述控制器內(nèi)的原始程序碼。
19. 如權(quán)利要求18所述的更新方法,其特征在于,當(dāng)處于所 述擦除模式,依據(jù)更新命令擦除所述控制器內(nèi)的原始程序碼。
20. 如權(quán)利要求18所述的更新方法,其特征在于,當(dāng)處于所 述校正模式,依據(jù)更新命令計(jì)算所述控制器內(nèi)的程序碼文件的總 和值,以檢査所述程序碼文件的正確性。
全文摘要
本發(fā)明揭示一種用于控制器程序碼的更新系統(tǒng)、具有所述更新系統(tǒng)的網(wǎng)絡(luò)存儲(chǔ)設(shè)備及其更新方法,其包括應(yīng)用程序單元、核心緩存、雙通道控制模塊以及通用輸入/輸出控制模塊。應(yīng)用程序單元接收來(lái)自網(wǎng)絡(luò)的更新命令以及程序碼文件。核心緩存依據(jù)更新命令下載程序碼文件。雙通道控制模塊用以讀取儲(chǔ)存于所述核心緩存的程序碼文件,并且將所述程序碼文件轉(zhuǎn)換成一時(shí)鐘信號(hào)以及一數(shù)據(jù)信號(hào)。通用輸入/輸出控制模塊具有一時(shí)鐘通道以及一數(shù)據(jù)通道,以分別傳送所述時(shí)鐘信號(hào)以及所述數(shù)據(jù)信號(hào)至網(wǎng)絡(luò)存儲(chǔ)設(shè)備,并且利用時(shí)鐘信號(hào)以及數(shù)據(jù)信號(hào),以更新儲(chǔ)存于控制器內(nèi)的原始程序碼。
文檔編號(hào)G06F9/445GK101464802SQ20071030059
公開日2009年6月24日 申請(qǐng)日期2007年12月21日 優(yōu)先權(quán)日2007年12月21日
發(fā)明者蔣業(yè)尚 申請(qǐng)人:環(huán)旭電子股份有限公司;環(huán)隆電氣股份有限公司