<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 離線加密編程器中的 BootLoader程序設計

          離線加密編程器中的 BootLoader程序設計

          作者: 時間:2009-01-08 來源:網絡 收藏
          引 言
          離線是一種獨立于PC機,并通過SPI接口直接對ATmega系列進行編程操作的設備。在整個系統中,與目標板之間的結合部分是一個最可能被解密的地方,因為可以通過抓取SPI總線上的時序得到所傳輸的數據,因此與目標板之間傳輸的數據必須是經過的。而有效的編程數據不能為數據,所以加密數據需要經過解密還原才能用于的編程。本設計中程序的作用就是接收離線加密編程器的加密數據,對加密數據進行解密,然后完成目標板的編程操作。首先編程目標板的BootLoaoler引導程序,最后與程序建立連接。編程器將加密數據傳送給。程序,由程序對加密數據進行解密,然后完成編程操作。這樣做既可以確保數據不被外界破解,又能方便程序的升級操作。程序的下載對具有知識產權保護要求的離線編程器設計是一個關鍵步驟,它的成功與否直接決定離線編程器設計能否成功。本文將以ATmegal69為例進行BootLoader程序下載的介紹。


          1 系統硬件設計
          本系統主要由單片機、顯示部分、按鍵開關、存儲部分和串行通信部分等組成,硬件結構框圖如圖1所示。

          本文引用地址:http://www.ex-cimer.com/article/173920.htm

          圖1中,AVR ATmegal69P(V)單片機是一種高性能、低功耗的8位微處理器,采用先進的RISC結構,130條指令大多數可以在1個時鐘周期內完成,滿足了本系統對執(zhí)行速度的要求。它具有非易失性的程序和數據存儲器,16 KB的系統內可編程Flash,具有4×25段的LCD驅動器的ATmegal69P(V),輸入電壓3.3 V,串行US―ART,可工作于主機/從機模式的SPI串行接口;存儲部分采用ATmel公司8個引腳的串口存儲芯片AT45DB041B,主存容量大小為528 KB,一共2 048頁,每頁264B,具有2個大小為265B的數據緩存,允許通知對存儲芯片進行讀寫,工作電壓為3.3 V。由于系統單片機的SPI通信口用來對目標板進行編程,所以采用軟件模擬SPI對AT45DB041B進行讀寫;其通信部分分為與PC機的通信和與目標板的通信。與PC機的通信采用USB接口,編程器內部采用UART―USB轉換橋芯片PL一2303,在編程方式上等同于一個普通的UART接口,非常方便;與目標板的通信是通過高速的SPI接口,達到對目標板的編程操作;采用雙鍵制按鍵開關,其中按鍵之一用來查詢下載器的各種信息,另外一個按鍵用來啟動對目標板的下載操作;為了充分利用ATmegal69P(V)具有LCD驅動器的特點,采用段式LCD屏,可以縮小下載器的體積,操作方便。

          2 工作原理
          2.1 幾個概念

          ①開發(fā)方:設計IP的開發(fā)單位或個人。
          ②IP擁有方:擁有離線加密編程器的知識產權方。
          ③客戶:離線加密編程器的使用者,需向IP擁有方購買離線加密編程器的各種軟硬件資源。
          2.2 三方關系
          開發(fā)方負責開發(fā)離線加密編程器的各種軟硬件,然后向IP擁有方提供各種所需的軟硬件資源,包括編程器硬件、上位機軟件,并且根據IP擁有方的要求編寫目標板的程序。IP擁有方將軟硬件賣給客戶,客戶使用IP擁有方提供的與編程器相關的軟硬件對目標板進行編程操作。開發(fā)方提供給IP擁有方的適合目標板的程序是未經過加密的,IP擁有方通過上位機軟件,自由選擇加密參數,對未經過加密的程序進行加密。客戶購買到離線加密編程器后,可以選擇某一IP擁有方,并在選擇的IP擁有方處進行注冊。購買授權下載次數,通過客戶端軟件將加密編程器進行授權,此時,加密編程器具備了下載功能??蛻舾鶕约旱囊笙蜃约鹤赃^的IP擁有方提出目標板軟件購買意向,IP擁有方將客戶要求告知開發(fā)方,開發(fā)方根據要求進行軟件的編寫。軟件編寫成功后,開發(fā)方將軟件交給IP擁有方,IP擁有方將軟件進行加密,并交給客戶,客戶通過客戶端軟件將加密過的程序存儲到加密編程器。此時,客戶手中的加密編程器可以脫離PC機。客戶將編程器帶到現場對目標板進行編程,直到授權下載次數用完為止。授權次數使用完畢后,客戶可以通過客戶端軟件提取加密編程器的授權購買請求文件,通過網絡將文件傳給IP擁有方,IP擁有方根據文件的內容進行相應的授權操作,然后將生成的授權文件通過網絡回傳給客戶,客戶通過客戶端軟件將授權文件下載到加密編程器,如果授權成功,那么編程器可以繼續(xù)使用。
          2.3 文件類型
          整個工作過程涉及以下幾種文件:
          ①加密下載文件:該文件是HEX文件經過加密后得到的文件,其中包含密鑰信息和編程數據。
          ②注冊申請文件:該文件包含申請注冊所需編程器的內部信息及客戶信息。
          ③注冊文件:該文件是在注冊申請文件的基礎上,IP擁有方添加注冊信息,包括各種參數。
          ④授權申請文件:該文件用來向IP擁有方購買授權下載次數,內容包括編程器信息、客戶信息,以及交易達成的各種協議。
          ⑤授權文件:該文件在授權申請文件的基礎上添加授權次數及說明。
          注:其中注冊申請文件、授權申請文件是通過客戶端軟件從編程器中提取的;注冊文件、授權文件通過客戶端軟件下載到編程器。

          3 編程器工作流程
          編程器的工作流程如圖2所示。下載到編程器的加密數據需要存入具有SPI接口的大容量外存AT45DB041B中,然而Atmegal69P(V)的SPI接口需要用來對目標板進行編程,所以只能采用軟件模擬SPI接口來對AT45DB041B進行讀寫操作。對目標板進行編程時,為了防止通過抓取SPI接口的時序來得到有效的編程數據,首先編程目標板的引導程序,然后對目標板下載加密數據,通過引導程序對數據進行解密后再進行目標板的編程操作。這樣做的好處是,通過數據加密,使得SPI總線上傳輸的數據均為加密信息,即使得到SPI總線上的時序,也不能使用。目標板的BootLoader程序將接收到的加密數據進行解密,然后將數據存儲。這些操作都在單片機內部進行,不會被破解。

          3.1 主程序
          主程序要完成系統的初始化、中斷設置、全局變量設置等。在初始化結束后,系統進入主查詢循環(huán)過程以判斷當前進行的操作,并進入相應的功能模塊。系統主程序流程如圖3所示。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();