針對(duì)C8051F單片機(jī)的手持編程器(SMP)
C8051F單片機(jī)是高度集成的混合信號(hào)系統(tǒng)級(jí)芯片(SoC),具有與8051 兼容的高速CIP-51 內(nèi)核,與MCS-51 指令集完全兼容,內(nèi)置程序存儲(chǔ)器FLASH、數(shù)據(jù)存儲(chǔ)器RAM;片內(nèi)集成了ADC、DAC 等常用的模擬外設(shè)及UART、SMBus、SPI 等數(shù)字外設(shè)。
C8051F單片機(jī)具有片內(nèi)調(diào)試電路,通過(guò)4 腳的JTAG 接口或者2線的C2接口可以進(jìn)行非侵入式、全速的在系統(tǒng)調(diào)試及下載。
基于以上特點(diǎn),C8051F單片機(jī)在工業(yè)控制、消費(fèi)電子、通信等領(lǐng)域得到了廣泛應(yīng)用。但是,用戶在生產(chǎn)過(guò)程中,希望一種方便快捷地對(duì)單片機(jī)編程,針對(duì)這種情況,深圳世強(qiáng)電訊有限公司設(shè)計(jì)開(kāi)發(fā)了一款手持編程器(以下簡(jiǎn)稱:SMP)方便用戶編程。
一、 SMP 開(kāi)發(fā)背景
單片機(jī)編程是生產(chǎn)環(huán)節(jié)的一道重要工具,目前對(duì)單片機(jī)編程主要有兩種方式:離線編程和在線編程。
1、 離線編程
離線編程連接方式如圖1 所示:
圖1 離線編程方式連接示意圖
目前大多數(shù)51單片機(jī)都是采用的是離線編程方式,但是離線編程方式存在以下缺點(diǎn):
專用編程器的價(jià)格一般比較昂貴,體積笨重;
編程過(guò)程中需要PC機(jī)的參與;
需要在PC機(jī)上為編程器安裝專用的驅(qū)動(dòng)軟件;
操作過(guò)程繁瑣;
MCU的程序需要更新時(shí),必須將板上的MCU取下來(lái)重新燒寫,這顯然不適合現(xiàn)場(chǎng)編程的需要。
2、 在線編程
目前C8051F單片機(jī)主要采用在線編程方式,連接方式如圖2 所示:
圖2 C8051F 單片機(jī)目前常用編程方式示意圖
用戶在使用這種方式時(shí)反饋如下問(wèn)題:
一直需要PC機(jī)的參與,不適合現(xiàn)場(chǎng)編程;
需要專用編程軟件;
需要在用戶板上安裝一個(gè)2×5 雙排2.54mm 插針,對(duì)于小封裝(最小至3×3mm)單片機(jī)應(yīng)用在小型便攜式設(shè)備上的情況,PCB空間一般比較緊張,這種雙排插針的安裝用戶很難接收。
以上兩種目前常用的編程方式或多或少都會(huì)給用戶生產(chǎn)帶來(lái)不方便,針對(duì)這種情況,深圳世強(qiáng)電訊有限公司針對(duì)Silicon Laboratories公司的C8051F單片自主研發(fā)了一款方便、安全、易于操作的手持編程器(SPP),SPP的推出可以極大的方便用戶生產(chǎn)、現(xiàn)場(chǎng)編程。
二、 SMP 簡(jiǎn)介
SMP 是深圳世強(qiáng)結(jié)合Silabs C8051F 單片機(jī)高保密性、低功耗的特點(diǎn),為方便用戶輕松編程而開(kāi)發(fā)的一款手持式編程器。此編程器專門針對(duì)C8051F單片機(jī)用戶,操作簡(jiǎn)單,PC機(jī)下載HEX文件到編程器不需專門的軟件,只需超級(jí)終端(Windows 系統(tǒng)都自帶)即可完成;在編程過(guò)程中不需PC 機(jī)的參與,操作人員只需簡(jiǎn)單按編程鍵或者插拔編程頭即可完成編程工作;另外,編程器被多重加密,很好保護(hù)用戶的知識(shí)產(chǎn)權(quán)不被侵犯。SMP外觀如圖3 所示:
圖3 SMP外觀示意圖
1、 編程器概貌
體積?。?1.5cm(長(zhǎng))×7.5cm(寬) ×2.5cm(高)
重量輕:0.1Kg
2、 對(duì)外接口
電源輸入接口:輸入9VDC
DB9:RS232接口,連接到PC機(jī),在PC機(jī)上用超級(jí)終端配置編程器、下載HEX 文件
2.54mm雙排十針:C2/JTAG 編程接口,用下載線纜連接到目標(biāo)板
3、 操作開(kāi)關(guān)
電源開(kāi)關(guān):編程器供電開(kāi)關(guān)
撥碼開(kāi)關(guān):配置編程器供電模式和操作模式
編程按鈕:按下一次執(zhí)行一次編程或者擦除操作
復(fù)位按鈕:對(duì)系統(tǒng)復(fù)位
4、 狀態(tài)指示
蜂鳴器指示:用蜂鳴器指示編程成功與否
狀態(tài)指示燈:編程狀態(tài)指示
電源指示燈:系統(tǒng)電源指示
5、 主要配件
SMP提供的主要配件是一個(gè)編程手柄,編程手柄上的插針可以插拔以組成單排五針或三針的編程頭,用戶無(wú)需在PCB上安裝體積較大的標(biāo)準(zhǔn)插座,只需相應(yīng)留出五個(gè)或三個(gè)編程孔,節(jié)約PCB空間和成本。
三、 SMP 功能及特點(diǎn)
SPP是一款適合于在生產(chǎn)環(huán)境或者現(xiàn)場(chǎng)使用的在線編程器,它具備如下功能和特點(diǎn):
1、 編程方式靈活
1) 編程接口可選
在所有C8051F 系列單片機(jī)中,編程口有四線制JTAG 方式和兩線制C2 方式。JTAG 是一種標(biāo)準(zhǔn)接口,有TDI,TDO,TMS,TCK 四個(gè)信號(hào),在C8051F0XX,C8051F1XX,C8051F2XX系列單片機(jī)上具有這種接口;C2 接口是一種簡(jiǎn)單接口,遵循Silabs 自有的C2 協(xié)議,這種接口適合于小封裝的單片機(jī)上,它只有兩條信號(hào)線:C2CK(時(shí)鐘線)和C2D(數(shù)據(jù)線),在C8051F3XX、C8051F4XX、C8051F5XX上具有這種接口。
可以通過(guò)SMP初始化配置界面選擇編程接口。
2) 編程模式可選
通過(guò)SMP 初始化配置界面的簡(jiǎn)單設(shè)置,用戶可以選擇只擦除目標(biāo)器件或者編程目標(biāo)器件。另外,用戶可以通過(guò)SMP初始化配置界面選擇自動(dòng)編程或者手動(dòng)編程。當(dāng)選擇自動(dòng)編程時(shí),只要將編程頭插到目標(biāo)板上編程自動(dòng)進(jìn)行;當(dāng)選擇手動(dòng)編程,插上編程頭后,只需按下編程按鈕即可完成編程或者擦除操作。
3) 編程界面可選
①聯(lián)機(jī)操作:用戶可以選擇在PC機(jī)上通過(guò)超級(jí)終端(Windows自帶)監(jiān)視編程過(guò)程;
?、诿摍C(jī)操作:編程過(guò)程中不需PC 機(jī)的參與,SMP 連到目標(biāo)板后,只需按下編程按鈕即可對(duì)目標(biāo)板編程,通過(guò)狀態(tài)指示燈和蜂鳴器監(jiān)測(cè)編程過(guò)程。
2、提供靈活的編程手柄
在小封裝MCU的應(yīng)用中,大多數(shù)用戶的PCB空間受限,要在用戶的PCB板上放置一個(gè)雙排十針的標(biāo)準(zhǔn)編程頭是不現(xiàn)實(shí)的,也是不經(jīng)濟(jì)的??紤]到這種情況,SPP除了提供一個(gè)標(biāo)準(zhǔn)的十針編程頭外,還提供一個(gè)編程手柄。編程手柄一端連接到SPP上,另外一端即為用于連接目標(biāo)板的編程頭。
編程頭上的插針可以插拔以組成兩種編程頭:?jiǎn)闻盼遽樉幊填^和單排三針編程頭。用戶可以根據(jù)PCB的大小,選擇不同的編程頭。當(dāng)選用五針或三針編程頭時(shí),用戶無(wú)需在PCB 上安裝一個(gè)體積較大的雙排十針插座,只需在其PCB 上留出五個(gè)或者三個(gè)編程用的插孔。另外,編程頭的插針為彈簧針的結(jié)構(gòu),用戶只需將編程頭壓在目標(biāo)板的編程孔上即可完成自動(dòng)編程或者手動(dòng)編程。靈活的編程手柄充分考慮了用戶的利益,節(jié)約了用戶PCB空間和成本。
3、供電方式靈活
SMP 有多種供電方式,用戶可以根據(jù)現(xiàn)場(chǎng)的供電情況選擇不同的供電方式。SMP 支持以下供電方式:
由220VAC/9VDC適配器為SMP供電;
由目標(biāo)板為SMP供電;
SMP也可以為目標(biāo)板供電。
4、保密性能高
為保護(hù)用戶的知識(shí)產(chǎn)權(quán)和經(jīng)濟(jì)利益,SMP實(shí)現(xiàn)了高度加密。SMP加密分為兩個(gè)層次,SPP本身的內(nèi)容實(shí)現(xiàn)完全加密、SPP的使用實(shí)現(xiàn)口令保護(hù)。
1) 編程器本身被完全加密
SMP 使用了Silabs 的MCU 作為主控芯片。Silabs 的MCU 提供了多種安全機(jī)制以保護(hù)Flash不被訪問(wèn)。Silabs MCU主要提供了如下安全機(jī)制:
防止程序被單片機(jī)中運(yùn)行的軟件意外修改;
防止程序被仿真器修改;
防止程序被仿真器讀取;
防止程序被單片機(jī)中運(yùn)行的用戶代碼讀取或修改
SMP的主要功能是接收用戶的HEX 文件用于下載到目標(biāo)板,保護(hù)用戶HEX 文件的安全是SMP 的職責(zé)。因此,在SMP 中主要采用了“防止程序被仿真器讀取”的安全機(jī)制。SMP被完全加密,仿真器無(wú)法讀取SMP Flash中的任何內(nèi)容,甚至仿真器都不能連接到SMP,仿真器要訪問(wèn)SMP,必須首先將SMP的Flash全部擦除。因此,用戶的HEX裝入到SMP后不會(huì)被盜取,有效保護(hù)了用戶的知識(shí)產(chǎn)權(quán)不被侵犯。
2) 編程器實(shí)行口令保護(hù)
另外,SMP實(shí)行口令保護(hù)。每一臺(tái)SMP都有唯一編號(hào),同時(shí),世強(qiáng)會(huì)為每一臺(tái)SMP分配一個(gè)唯一的口令??诹钆c編程數(shù)量相關(guān),當(dāng)編程數(shù)量達(dá)到預(yù)分配值時(shí),編程口令會(huì)失效,用戶需要獲得新的口令才能對(duì)SMP進(jìn)行操作。只有授權(quán)用戶才能得到SMP口令,即使授權(quán)用戶的SMP 被非授權(quán)用戶獲得,非授權(quán)用戶在編程到一定量的時(shí)候編程器就無(wú)法被繼續(xù)使用,這樣可以充分保護(hù)授權(quán)用戶的利益。
5、 狀態(tài)指示明確
當(dāng)PC機(jī)參與編程過(guò)程時(shí),可以從PC的超級(jí)終端清晰看到編程器的配置、編程模式的設(shè)置、編程進(jìn)程、編程結(jié)果等等細(xì)節(jié)。
當(dāng)SMP 脫機(jī)操作時(shí),可以只通過(guò)狀態(tài)指示燈和蜂鳴器監(jiān)測(cè)編程過(guò)程。在SMP 工作的每一個(gè)階段,狀態(tài)指示燈和蜂鳴器的指示都有明確的含義,根據(jù)編程的階段以及當(dāng)前狀態(tài)指示燈和蜂鳴器的狀態(tài),可以準(zhǔn)確判斷當(dāng)前SMP的工作狀態(tài)。
四、 SMP 操作流程
SMP操作分為初始化、編程操作、固件升級(jí)三個(gè)個(gè)部分
1、SMP初始化流程
SMP 在第一次使用時(shí)需要初始化,初始化包括輸入SMP 口令、選擇目標(biāo)器件、設(shè)置編程接口和編程模式、擦除Flash空間、接收被下載HEX 文件等等。SMP初始化需要PC機(jī)的參與,利用Windows自帶的超級(jí)終端(HyperTerminal)軟件提供人機(jī)接口。操作流程如圖4所示:
圖4 SMP初始化流程圖
2、 SMP編程操作流程
當(dāng)SPP 完成初始化工作后,就可以用來(lái)完成編程工作了。編程時(shí)可以不需要PC 機(jī)的參與,編程操作非常簡(jiǎn)單,操作流程如圖5 所示:
圖5 SMP編程操作流程圖
從以上看,SMP的操作非常簡(jiǎn)單,容易掌握。
3、 固件升級(jí)
為了方便用戶隨時(shí)得到最新的編程器服務(wù),用戶可以在本地升級(jí)編程器的固件程序,固件程序可以從世強(qiáng)的網(wǎng)站下載或者直接聯(lián)系世強(qiáng)的相關(guān)人員。固件升級(jí)流程如下:
圖6 SMP固件升級(jí)流程圖