针对C8051F单片机的手持编程器(SMP)
扫描二维码
随时随地手机看文章
C8051F单片机是高度集成的混合信号系统级芯片(SoC),具有与8051 兼容的高速CIP-51 内核,与MCS-51 指令集完全兼容,内置程序存储器FLASH、数据存储器RAM;片内集成了ADC、DAC 等常用的模拟外设及UART、SMBus、SPI 等数字外设。
C8051F单片机具有片内调试电路,通过4 脚的JTAG 接口或者2线的C2接口可以进行非侵入式、全速的在系统调试及下载。
基于以上特点,C8051F单片机在工业控制、消费电子、通信等领域得到了广泛应用。但是,用户在生产过程中,希望一种方便快捷地对单片机编程,针对这种情况,深圳世强电讯有限公司设计开发了一款手持编程器(以下简称:SMP)方便用户编程。
一、 SMP 开发背景
单片机编程是生产环节的一道重要工具,目前对单片机编程主要有两种方式:离线编程和在线编程。
1、 离线编程
离线编程连接方式如图1 所示:
图1 离线编程方式连接示意图
目前大多数51单片机都是采用的是离线编程方式,但是离线编程方式存在以下缺点:
专用编程器的价格一般比较昂贵,体积笨重;
编程过程中需要PC机的参与;
需要在PC机上为编程器安装专用的驱动软件;
操作过程繁琐;
MCU的程序需要更新时,必须将板上的MCU取下来重新烧写,这显然不适合现场编程的需要。
2、 在线编程
目前C8051F单片机主要采用在线编程方式,连接方式如图2 所示:
图2 C8051F 单片机目前常用编程方式示意图
用户在使用这种方式时反馈如下问题:
一直需要PC机的参与,不适合现场编程;
需要专用编程软件;
需要在用户板上安装一个2×5 双排2.54mm 插针,对于小封装(最小至3×3mm)单片机应用在小型便携式设备上的情况,PCB空间一般比较紧张,这种双排插针的安装用户很难接收。
以上两种目前常用的编程方式或多或少都会给用户生产带来不方便,针对这种情况,深圳世强电讯有限公司针对Silicon Laboratories公司的C8051F单片自主研发了一款方便、安全、易于操作的手持编程器(SPP),SPP的推出可以极大的方便用户生产、现场编程。
二、 SMP 简介
SMP 是深圳世强结合Silabs C8051F 单片机高保密性、低功耗的特点,为方便用户轻松编程而开发的一款手持式编程器。此编程器专门针对C8051F单片机用户,操作简单,PC机下载HEX文件到编程器不需专门的软件,只需超级终端(Windows 系统都自带)即可完成;在编程过程中不需PC 机的参与,操作人员只需简单按编程键或者插拔编程头即可完成编程工作;另外,编程器被多重加密,很好保护用户的知识产权不被侵犯。SMP外观如图3 所示:
图3 SMP外观示意图
1、 编程器概貌
体积小:11.5cm(长)×7.5cm(宽) ×2.5cm(高)
重量轻:0.1Kg
2、 对外接口
电源输入接口:输入9VDC
DB9:RS232接口,连接到PC机,在PC机上用超级终端配置编程器、下载HEX 文件
2.54mm双排十针:C2/JTAG 编程接口,用下载线缆连接到目标板
3、 操作开关
电源开关:编程器供电开关
拨码开关:配置编程器供电模式和操作模式
编程按钮:按下一次执行一次编程或者擦除操作
复位按钮:对系统复位
4、 状态指示
蜂鸣器指示:用蜂鸣器指示编程成功与否
状态指示灯:编程状态指示
电源指示灯:系统电源指示
5、 主要配件
SMP提供的主要配件是一个编程手柄,编程手柄上的插针可以插拔以组成单排五针或三针的编程头,用户无需在PCB上安装体积较大的标准插座,只需相应留出五个或三个编程孔,节约PCB空间和成本。
三、 SMP 功能及特点
SPP是一款适合于在生产环境或者现场使用的在线编程器,它具备如下功能和特点:
1、 编程方式灵活
1) 编程接口可选
在所有C8051F 系列单片机中,编程口有四线制JTAG 方式和两线制C2 方式。JTAG 是一种标准接口,有TDI,TDO,TMS,TCK 四个信号,在C8051F0XX,C8051F1XX,C8051F2XX系列单片机上具有这种接口;C2 接口是一种简单接口,遵循Silabs 自有的C2 协议,这种接口适合于小封装的单片机上,它只有两条信号线:C2CK(时钟线)和C2D(数据线),在C8051F3XX、C8051F4XX、C8051F5XX上具有这种接口。
可以通过SMP初始化配置界面选择编程接口。
2) 编程模式可选
通过SMP 初始化配置界面的简单设置,用户可以选择只擦除目标器件或者编程目标器件。另外,用户可以通过SMP初始化配置界面选择自动编程或者手动编程。当选择自动编程时,只要将编程头插到目标板上编程自动进行;当选择手动编程,插上编程头后,只需按下编程按钮即可完成编程或者擦除操作。
3) 编程界面可选
①联机操作:用户可以选择在PC机上通过超级终端(Windows自带)监视编程过程;
②脱机操作:编程过程中不需PC 机的参与,SMP 连到目标板后,只需按下编程按钮即可对目标板编程,通过状态指示灯和蜂鸣器监测编程过程。
2、提供灵活的编程手柄
在小封装MCU的应用中,大多数用户的PCB空间受限,要在用户的PCB板上放置一个双排十针的标准编程头是不现实的,也是不经济的。考虑到这种情况,SPP除了提供一个标准的十针编程头外,还提供一个编程手柄。编程手柄一端连接到SPP上,另外一端即为用于连接目标板的编程头。
编程头上的插针可以插拔以组成两种编程头:单排五针编程头和单排三针编程头。用户可以根据PCB的大小,选择不同的编程头。当选用五针或三针编程头时,用户无需在PCB 上安装一个体积较大的双排十针插座,只需在其PCB 上留出五个或者三个编程用的插孔。另外,编程头的插针为弹簧针的结构,用户只需将编程头压在目标板的编程孔上即可完成自动编程或者手动编程。灵活的编程手柄充分考虑了用户的利益,节约了用户PCB空间和成本。
3、供电方式灵活
SMP 有多种供电方式,用户可以根据现场的供电情况选择不同的供电方式。SMP 支持以下供电方式:
由220VAC/9VDC适配器为SMP供电;
由目标板为SMP供电;
SMP也可以为目标板供电。
4、保密性能高
为保护用户的知识产权和经济利益,SMP实现了高度加密。SMP加密分为两个层次,SPP本身的内容实现完全加密、SPP的使用实现口令保护。
1) 编程器本身被完全加密
SMP 使用了Silabs 的MCU 作为主控芯片。Silabs 的MCU 提供了多种安全机制以保护Flash不被访问。Silabs MCU主要提供了如下安全机制:
防止程序被单片机中运行的软件意外修改;
防止程序被仿真器修改;
防止程序被仿真器读取;
防止程序被单片机中运行的用户代码读取或修改
SMP的主要功能是接收用户的HEX 文件用于下载到目标板,保护用户HEX 文件的安全是SMP 的职责。因此,在SMP 中主要采用了“防止程序被仿真器读取”的安全机制。SMP被完全加密,仿真器无法读取SMP Flash中的任何内容,甚至仿真器都不能连接到SMP,仿真器要访问SMP,必须首先将SMP的Flash全部擦除。因此,用户的HEX装入到SMP后不会被盗取,有效保护了用户的知识产权不被侵犯。
2) 编程器实行口令保护
另外,SMP实行口令保护。每一台SMP都有唯一编号,同时,世强会为每一台SMP分配一个唯一的口令。口令与编程数量相关,当编程数量达到预分配值时,编程口令会失效,用户需要获得新的口令才能对SMP进行操作。只有授权用户才能得到SMP口令,即使授权用户的SMP 被非授权用户获得,非授权用户在编程到一定量的时候编程器就无法被继续使用,这样可以充分保护授权用户的利益。
5、 状态指示明确
当PC机参与编程过程时,可以从PC的超级终端清晰看到编程器的配置、编程模式的设置、编程进程、编程结果等等细节。
当SMP 脱机操作时,可以只通过状态指示灯和蜂鸣器监测编程过程。在SMP 工作的每一个阶段,状态指示灯和蜂鸣器的指示都有明确的含义,根据编程的阶段以及当前状态指示灯和蜂鸣器的状态,可以准确判断当前SMP的工作状态。
四、 SMP 操作流程
SMP操作分为初始化、编程操作、固件升级三个个部分
1、SMP初始化流程
SMP 在第一次使用时需要初始化,初始化包括输入SMP 口令、选择目标器件、设置编程接口和编程模式、擦除Flash空间、接收被下载HEX 文件等等。SMP初始化需要PC机的参与,利用Windows自带的超级终端(HyperTerminal)软件提供人机接口。操作流程如图4所示:
图4 SMP初始化流程图
2、 SMP编程操作流程
当SPP 完成初始化工作后,就可以用来完成编程工作了。编程时可以不需要PC 机的参与,编程操作非常简单,操作流程如图5 所示:
图5 SMP编程操作流程图
从以上看,SMP的操作非常简单,容易掌握。
3、 固件升级
为了方便用户随时得到最新的编程器服务,用户可以在本地升级编程器的固件程序,固件程序可以从世强的网站下载或者直接联系世强的相关人员。固件升级流程如下:
图6 SMP固件升级流程图