專利名稱:微控制器編程系統及方法
技術領域:
本發明涉及一種微控制器的編程系統和方法,尤其是一種能對微控制器進行升級
編程的系統和方法。
背景技術:
微控制器因為成本越來越低,而性能越來越強大,使得它的應用已經無處不在,廣 泛應用于工控、消費類電子、汽車等各個領域。在電機控制、條碼閱讀器/掃描器、消費類電 子、游戲設備、電話、HVAC、樓宇安全與門禁控制、工業控制與自動化和白色家電(洗衣機、 微波爐)等領域。 隨著產品功能的改進,往往要對微控制器進行升級,這時需要把重新編程好的程 序,例如HEX(十六進制)程序代碼,燒寫到微控制器內的存儲器中。現有的編程設備,如圖 5所示,編程器50分別連接PC機40和微控制器(MCU) 60,先操作PC機將HEX程序代碼存 儲到編程器的存儲器中,然后操作編程器將HEX程序代碼燒寫到微控制器中。
從現有的燒寫過程可以看出,如果直接將HEX程序代碼交給用戶自行燒寫,則不 能控制用戶對程序的非法復制,即會產生盜版問題。即便將HEX程序代碼進行加密并對燒 寫次數進行限制再傳送給用戶,用戶也可以在HEX程序代碼的燒寫次數達到上限值之后, 重新將HEX程序代碼再存儲到編程器中,即可再次燒寫,從而輕易地避開該加密和次數限 制手段,達到無限制燒寫的目的。為此,現在的做法只能由微控制器的生產廠家的技術人 員,自行攜帶軟件和編程設備到達用戶處,進行現場燒寫,不讓用戶直接接觸到HEX程序代 碼,以避免發生非法復制的情形。 但是,這樣的方式需要技術人員到達現場,大大增加了生產廠商的差旅成本,在需 要服務的客戶很多的情況下,也會耽誤升級時間,造成客戶的使用不便。
發明內容
為此,本發明的所要解決的技術問題在于提供一種微控制器編程系統,其能讓用 戶自行進行燒寫以節省成本,同時對燒寫次數進行控制,避免用戶非法復制和無限制地燒寫。 為了達成上述目的,本發明提供了一種微控制器的編程系統,包括服務器端,用 于將數據代碼文件加密并且傳輸該已加密的數據代碼文件;可與所述服務器端遠程連接的 客戶端,所述客戶端可與所述服務器端通信;以及可與所述客戶端本地連接的編程器,所述 編程器經由所述客戶端接收并儲存所述已加密數據代碼文件,并且當允許燒寫次數值大于 零時,所述編程器可將所述已加密的數據代碼文件解密并將還原后的數據代碼文件寫入微 控制器中,并在成功燒寫一次后,將所述允許燒寫次數值減去一作為更新后的允許燒寫次 數值記錄在所述編程器中。 較佳地,上述編程器還包括控制模塊以及與控制模塊相連的存儲器,所述接收到 的已加密數據代碼文件儲存在所述存儲器中,所述控制模塊包括主芯片;解密模塊,用于解
4密接收到的已加密數據代碼文件;燒寫模塊,用于將根據預設的參數將還原后的數據代碼 文件燒寫到微控制器中;以及記錄判斷模塊,用于根據允許燒寫次數值來判斷是否允許解 密模塊和燒寫模塊進行操作,并用于記錄更新的允許燒寫次數值。 較佳地,上述記錄判斷模塊,還用于記錄所述已加密數據代碼文件的接收完成時 間,并根據從接收完成時間起到當前時間是否達到預設的燒寫有效期來判斷是否允許進行 解密模塊和燒寫模塊進行操作。 較佳地,上述編程器還包括用于與所述客戶端連接的傳輸接口,以及用于與所述 微處理器連接的燒寫接口。 較佳地,上述服務器端和所述客戶端均為PC機,兩者通過網絡進行遠程連接并通 信;所述網絡為互聯網。 較佳地,所述允許燒寫次數值包括在所述加密數據代碼文件中或者預先設置在所 述編程器的記錄判斷模塊中。 較佳地,所述燒寫有效期包括在所述加密數據代碼文件中或者預先設置在所述編 程器的記錄判斷模塊中。 本發明所要解決的另一技術問題在于提供一種能讓用戶自行進行燒寫以節省成 本,同時對燒寫次數進行控制,避免用戶非法復制和無限制地燒寫的微控制器編程方法。
為此,本發明提供了一種微控制器的編程方法,包括遠程連接服務器端和客戶 端,使得所述服務器端和客戶端之間建立通信;本地連接所述客戶端和編程器;在服務器 端對數據代碼文件進行加密和傳輸;將所述已加密數據代碼文件經由所述客戶端儲存到所 述編程器中;連接所述編程器和待燒寫的微處理器;以及判斷所述編程器的允許燒寫次數 值是否大于零,若所述允許燒寫次數值大于零,則允許所述編程器操作,以將所述已加密的 數據代碼文件解密并將還原后的數據代碼文件寫入微控制器中,并在燒寫成功一次之后將 允許燒寫次數值減去一作為更新的允許燒寫次數記錄到所述編程器中;若允許燒寫次數值 小于等于零,則不允許進行上述操作。 較佳地,上述的微控制器編程方法,還包括判斷從所述已加密數據代碼文件的接
收完成時間起到當前時間是否達到預設燒寫有效期,若未達到所述預設有效期,則允許所
述編程器進行操作;若已達到所述預設有效期,則不允許所述編程器進行操作。 較佳地,上述微控制器編程方法中,所述允許燒寫次數值包括在所述加密數據文
件中或者預先設置在所述編程器中。 較佳地,上述微控制器編程方法中,所述燒寫有效期包括在所述加密數據文件中 或者預先設置在所述編程器中。 通過采用上述的微控制器的編程系統和方法之后,可以在生產廠商的控制下,讓 客戶自行對微控制器進行升級燒寫,生產廠商不必再派出技術人員到現場進行服務,大大 節省了差旅成本。另外,因為所傳輸的升級程序文件是進行了加密處理和次數限制并直接 存儲到編程器中的,客戶無法自行提取該升級程序進行非法復制;同時也不能對升級程序 進行無限制的復制。
圖1為本發明的微控制器編程系統的結構示意 圖2為本發明的微控制器編程方法的流程圖; 圖3為本發明的微控制器編程系統中編程器的模塊圖; 圖4為本發明的另一實施例的編程方法的流程圖; 圖5為現有技術的微控制器編程系統示意圖。
具體實施例方式
圖1所示,為本發明的微控制器編程系統的結構示意圖。該微控制器的編程系統 包括服務器端1、客戶端2和編程器3。服務器端1與客戶端2為遠程連接并且可進行通 信,客戶端2與編程器3為本地連接且也可進行通信。在一實施例中,該服務器端1與客戶 端2可以是PC機,通過互聯網實現遠程連接;客戶端2與編程器3之間通過USB接口實現 本地連接。但本發明對此并不作限制,也可采用本領域技術人員熟知的其他連接手段,例 如,通過局域網、無線網絡等實現服務器端1與客戶端2的遠程連接;或者通過其他接口例 如串行口、并行口等實現客戶端2與編程器3之間的本地連接。此外,編程器3與微控制器 4連接進行燒寫。 本發明編程方法的一個實施例如圖2所示,對微控制器4燒寫之前,服務器端1將 需要燒寫到目標設備(即微控制器)中的HEX代碼文件進行數據加密并加入允許燒寫的次 數值N(例如N二 100,即表示該編程器最多可以燒寫100臺微控制器);該加密后數據文件 按照預定的協議通過客戶端2傳輸并保存到編程器3中。 編程器3保存好加密數據文件之后,可解除與客戶端2的本地連接,再與待燒寫的 微控制器4連接,進行實際的燒寫。燒寫前,需先判斷允許燒寫次數值N是否小于等于零。 若N小于等于零,則不允許進行燒寫;若N大于零,則允許進行燒寫。這樣可以防止編程器 無限制地進行燒寫,達到控制非法復制的目的。 燒寫過程中,編程器3先將HEX代碼文件解密,將解密還原后的HEX代碼文件寫入 到微控制器4中。燒寫成功一次后,將允許燒寫次數值N減去l,并將該更新后的值N記錄 下來,為是否允許下一次燒寫提供判斷依據。 本發明編程器3的模塊示意圖如圖3所示,其包括控制模塊31、分別與該控制模塊 31相連的存儲器32、燒寫接口 33和傳輸接口 34。編程器3通過燒寫接口 33與微控制器4 連接,通過傳輸接口 34與作為客戶端2的PC機相連。通過客戶端2下載的加密HEX代碼 文件保存在存儲器32中。其中,所述存儲器32可以是Flash存儲器,燒寫接口 33可為普 通的16芯接口,傳輸接口 34可為USB接口。 控制模塊31包括一個主芯片310,該主芯片可采用單片機,例如NEC16位單片機, 也可采用本領域技術人員所熟知的其他芯片,本發明對此不作限制。控制模塊31還包括解 密模塊311,用于解密下載的加密HEX代碼文件;燒寫模塊312,用于將根據預設的參數將還 原后的HEX代碼文件通過燒寫接口 33燒寫到微控制器4中;以及記錄判斷模塊313,用于 根據允許燒寫次數值N來控制解密模塊311和燒寫模塊312的操作。S卩,當允許燒寫次數 值N大于零時,允許解密模塊311和燒寫模塊312進行操作,并用于記錄更新后的實際燒寫 次數;若允許燒寫次數值小于等于零時,則不允許解密模塊和燒寫模塊進行操作。
在另一較佳實施例中,所述記錄判斷模塊31還可以通過時間參數來控制解密模 塊311和燒寫模塊312的操作。S卩,上述已加密數據代碼文件中還可加入預設燒寫有效期
6T。例如,T = 30天,表示從數據文件接收完成起30天內允許進行燒寫,超過30天,則數據代碼文件失效,即便上述允許燒寫限制值N大于零,也不允許燒寫。 該實施例的流程圖如圖4所示,其大部分步驟與圖2所示的實施例相同,不同之處在于,加密文件時除了加入允許燒寫次數限制值N之外,還加入了有效期T ;在判斷允許燒寫次數值的步驟之后,再進行判斷有效期T的步驟。S卩,在允許燒寫次數N大于零的前提下,將當前時間與有效期T進行比較,未超出有效期T時,可以進行上述的燒寫操作;超出有效期T時,則不允許進行燒寫。這樣可以進一步防止非法復制。 在另一實施例中,上述判斷允許燒寫次數值的步驟可以在判斷有效期T的步驟之
后,換言之,可以先判斷是否超出有效期,再判斷允許燒寫次數N是否大于零。 為了實現圖4所示實施例中的時間控制功能,圖3所示的控制模塊31中還需包括
時鐘(圖中未示),用于記錄時間,以便判斷當前時間是否超出有效期T。 作為本發明的另外實施方式,上述的允許燒寫次數限制值N和有效期T可以預先
設置在編程器3中,而不必通過加密數據文件一起傳輸到編程器3。
權利要求
一種微控制器的編程系統,其特征在于,包括服務器端,用于將數據代碼文件加密并且傳輸該已加密的數據代碼文件;可與所述服務器端遠程連接的客戶端,所述客戶端可與所述服務器端通信;以及可與所述客戶端本地連接的編程器,所述編程器經由所述客戶端接收并儲存所述已加密數據代碼文件,并且當允許燒寫次數值大于零時,所述編程器可將所述已加密的數據代碼文件解密并將還原后的數據代碼文件寫入微控制器中,并在成功燒寫一次后,將所述允許燒寫次數值減去一作為更新后的允許燒寫次數值記錄在所述編程器中。
2. 根據權利要求l所述的編程系統,其特征在于,所述編程器包括控制模塊以及與控 制模塊相連的存儲器,所述接收到的已加密數據代碼文件儲存在所述存儲器中,所述控制 模塊包括主芯片;解密模塊,用于解密接收到的已加密數據代碼文件;燒寫模塊,用于將根 據預設的參數將還原后的數據代碼文件燒寫到微控制器中;以及記錄判斷模塊,用于根據 允許燒寫次數值來判斷是否允許解密模塊和燒寫模塊進行操作,并用于記錄更新的允許燒 寫次數值。
3. 根據權利要求2所述的編程系統,其特征在于,所述記錄判斷模塊,還用于記錄所述 已加密數據代碼文件的接收完成時間,并根據從接收完成時間起到當前時間是否達到預設 的燒寫有效期來判斷是否允許進行解密模塊和燒寫模塊進行操作。
4. 根據權利要求2或3所述的編程系統,其特征在于,所述編程器還包括用于與所述客 戶端連接的傳輸接口 ,以及用于與所述微處理器連接的燒寫接口 。
5. 根據權利要求1 、2或3所述的編程系統,其特征在于,所述服務器端和所述客戶端均 為PC機,兩者通過網絡進行遠程連接并通信。
6. 根據權利要求5所述的編程系統,其特征在于,所述網絡為互聯網。
7. 根據權利要求1 、2或3所述的編程系統,其特征在于,所述允許燒寫次數值包括在所 述加密數據代碼文件中。
8. 根據權利要求1 、2或3所述的編程系統,其特征在于,所述允許燒寫次數值預先設置 在所述編程器的記錄判斷模塊中。
9. 根據權利要求3所述的編程系統,其特征在于,所述燒寫有效期包括在所述加密數 據代碼文件中。
10. 根據權利要求3所述的編程系統,其特征在于,所述燒寫有效期預先設置在所述編 程器的記錄判斷模塊中。
11. 一種微控制器的編程方法,其特征在于,包括遠程連接服務器端和客戶端,使得所述服務器端和客戶端之間建立通信; 本地連接所述客戶端和編程器; 在服務器端對數據代碼文件進行加密和傳輸;將所述已加密數據代碼文件經由所述客戶端儲存到所述編程器中; 連接所述編程器和待燒寫的微處理器;以及判斷所述編程器的允許燒寫次數值是否大于零,若所述允許燒寫次數值大于零,則允 許所述編程器操作,以將所述已加密的數據代碼文件解密并將還原后的數據代碼文件寫入 微控制器中,并在燒寫成功一次之后將允許燒寫次數值減去一作為更新的允許燒寫次數記 錄到所述編程器中;若允許燒寫次數值小于等于零,則不允許進行上述操作。
12. 根據權利要求11所述的微控制器編程方法,其特征在于,還包括 判斷從所述已加密數據代碼文件的接收完成時間起到當前時間是否達到預設燒寫有效期,若未達到所述預設有效期,則允許所述編程器進行操作;若已達到所述預設有效期, 則不允許所述編程器進行操作。
13. 根據權利要求10或11所述的微控制器編程方法,其特征在于,所述允許燒寫次數 值包括在所述加密數據文件中。
14. 根據權利要求10或11所述的微控制器編程方法,其特征在于,所述允許燒寫次數 值預先設置在所述編程器中。
15. 根據權利要求11所述的微控制器編程方法,其特征在于,所述燒寫有效期包括在 所述加密數據文件中。
16. 根據權利要求11所述的微控制器編程方法,其特征在于,所述燒寫有效期預先設 置在所述編程器中。
全文摘要
本發明涉及一種微控制器的編程系統,其包括服務器端,用于將數據代碼文件加密并且傳輸該已加密的數據代碼文件;可與所述服務器端遠程連接的客戶端,所述客戶端可與所述服務器端通信;以及可與所述客戶端本地連接的編程器,所述編程器經由所述客戶端接收并儲存所述已加密數據代碼文件,并且當允許燒寫次數值大于零時,編程器可將已加密的數據代碼文件解密并將還原后的數據代碼文件寫入微控制器中,并在成功燒寫一次后,將允許燒寫次數值減去一作為更新后的允許燒寫次數值記錄在編程器中。本發明能讓用戶自行進行燒寫以節省成本,同時對燒寫次數進行控制,避免用戶非法復制和無限制地燒寫。
文檔編號G11C7/00GK101763886SQ200910253718
公開日2010年6月30日 申請日期2009年12月10日 優先權日2009年12月10日
發明者張中其, 秦銘遠, 苑維旺, 陸迪付 申請人:上海格州電子有限公司