摘要:为了对烧断熔丝的MSP430系列单片机进行程序更新,选用USB转串口芯片PL2303和VB6.0编程言语规划出了一款高性价比的BSL编程东西,给出了该编程东西的硬件和软件规划的详细计划,并论说了规划中的要害。该BSL编程东西运用便利、操作简略、本钱低价,投入运用今后获得了较好的作用。
导言
美国德州仪器公司的MSP430系列单片机在智能仪器仪表、医疗电子、消费电子等范畴有着十分广泛的运用。大部分MSP430系列单片机都具有非易失性Flash存储器,用户调试或更新Flash中程序的办法一般有两种办法:JTAG和Bootstrap Loader(引导装载程序,简称BSL)。
MSP430系列单片机内部集成了JTAG仿真调试模块,并口转换器就能够作为一个低本钱的JTAG硬件仿真调试东西,但是,为了保护用户程序代码,往往产品开发完结之后必需求烧断MSP430单片机内部的熔丝,这就使得MSP430单片机无法再通过JTAG接口拜访CPU或许更新Flash中的用户程序了,要想再次拜访或许更新Flash中的用户程序就需求运用BSL接口。BSL接口也是对烧断熔丝后的MSP430单片机进行程序晋级的仅有办法。
MSP430系列单片机出厂时在特定的内存空间固化了一段引导代码,即BSL,通过在单片机特定引脚上加一个特定的时序就可进入这段引导代码,用户就能够通过规范的异步串行口拜访单片机的内部资源,如Flash、RAM等(读操作需求验证暗码),这就为嵌入式运用供给了便利的晋级和保护办法。
选用USB转串口芯片和VB6.0编程言语规划并完结了一种本钱低价、运用便利、操作简略的BSL编程东西,能够通过串口完结对MSP430系列单片机进行擦除、编程、主动下载文件、声响提示以及主动运转代码等功用。体系总体规划框图如图1所示。
1 体系硬件规划
该BSL编程东西的硬件是运用USB转串口芯片PL2303规划的,具有运用便利、规划本钱低一级长处。PL2303是Prolific公司出产的USB总线转接芯片,具有悉数调制解调器操控信号,如TXD、RXD、DTR、RTS等,可完结USB转3.3 V或5 V全双工串口TTL电平。
PL2303芯片接入PC机后会发生一个虚拟的串口设备,运用VB6.0供给的MSComm串口控件进行编程,即可操控TXD、RXD、DTR、RTS发生所需求的时序信号。虽然运用PC机的物理串口也能够完结相同的功用,但并不是每台PC机都有物理串口,USB转串口芯片使得该编程东西省去了物理串口的约束,并可为MSP430单片机供给电源,因而,PL2303是移动体系和嵌入式体系的抱负挑选,其小封装能够嵌入到任何衔接件和手持设备中。
该编程东西将PL2303芯片的DTR、RTS引脚别离衔接到MSP430系列单片机的RST、TCK(或许TEST)引脚,如果是带有TEST引脚的MSP430单片机,则运用TEST引脚替换TCK引脚。TX D、RXD是串口发送、接纳引脚,需求衔接MSP430单片机对应的BSL引脚,不同的单片机对应的接纳和发送引脚不完全相同。PL2303芯片的第4个引脚VDD 325是用来决议操控信号逻辑电平的,MSP430系列单片机都是3.3 V作业电压,因而,VDD_325应该接3.3 V,以便于TXD、RXD、DTR和RTS发生3.3 V逻辑电平。AMS1117是用来将5 V电压转换为3.3 V电压,除了给VDD_325供给电压,也能够给外部的MSP430单片机供给3.3 V电源。体系硬件规划原理图如图2所示。
2 体系软件规划
BSL编程东西的软件规划选用VB6.0来完结,虽然运用VC++、Delphi等编程东西都能够完结该软件的规划,但挑选VB6.0具有更多的优势,由于VB是一种比较简略的事情驱动编程言语,对初学者的要求较低。VB具有图形用户界面和快速运用程序开发体系,运用其供给的组件完全能够完结该软件的规划。
2.1 MSP430单片机BSL时序介绍
要使MSP430单片机进入BSL复位向量,需求在单片机的RST和TCK(或许TEST)引脚施加一个特定的时序,MSP430单片机接到这个特定时序后,CPU的程序指针(PC)指向0x 0C00地址处,这是一段1 KB的ROM区(0x 0C00~0x 1000)。
在BSL程序开端履行时,TCK引脚已收到至少两个负跳变,并且当RST由低向高跳变时TCK坚持低电平,此刻,MSP430单片机进入BSL状况;如果是带有TEST引脚的MSP430单片机,则运用TEST引脚替换TCK引脚,并且TEST引脚接纳的到是至少两个正跳变,并且当RST由低向高跳变时 TEST坚持高电平。MSP430单片机BSL发动时序如图3所示。
2. 2 BSL的串口通讯协议
MSP430单片机运用内部定时器完结在特定的引脚模仿串口通讯时序,大多数MSP430单片机的P1.1引脚作为BSL的发送端(即TXD),P2.2引脚作为BSL的接纳端(即RXD),不同类型的单片时机有所不同。
MSP430单片机的串口协议默许选用:9 600的波特率,半双工形式,1位开端位,8位数据位(最低位在前),1个偶校验位,1位中止位。握手是通过一个承认字符进行的,在发送任何指令之前,有必要先发送一个值为80H的同步字符给BSL,它供给了BSL体系时刻基准。当BSL接纳到同步字符之后,会发送一个90H的字符以承认成功接纳。
BSL供给给用户的指令首要分为两类:一类指令需求验证暗码才干履行,如拜访单片机Flash、RAM以及外设等操作;另一类指令无需验证暗码即可履行,如全体擦除Flash、读取BSL版别等。部分BSL指令数据帧格局如表1所列。
其间,从HDR到LH的8个字节是有必要的,xx表明恣意数据;数据D1~Dn是可选的;CKL是校验和的低位,CKH是校验和的高位,这两个字节是必需的;ACK承认字节并不是每个指令都需求的。
2.3 BSL软件规划
进行BSL软件规划,首要用到了VB6.0中的几个要害控件,如MSComm、CommandDialog、ComboBox、Timer、TextBox、ProgressBar、CommandButton、CheckBox等规范控件。
该BSL编程软件下载的程序文件格局为TI公司txt纯文本格局,它运用“@”表明地址的开端,地址后边表明从该地址开端要存储的数据内容,从地址后每一行为16个字节,每个字节运用十六进制数表明,每两个字节之间用一个空格离隔。每遇到一个“@”字符就表明新地址的开端,地址后边相同表明从该地址开端要存储的数据内容,文件最终以一个小写的“q”字符加换行完毕。依据TI-txt文件的格局,首先要运用CommandDialog控件翻开要下载的文件,运用必定的算法别离出整个TI-txt文件中的多段开端地址以及每个开端地址所对应的数据内容,然后通过串口一步一步地发送给BSL并写入到指定的地址段。BSL编程软件对TI-txt文件的处理流程如图4所示。
要通过串口完结上位机软件和MSP430单片机的BSL进行数据交换,最要害的一步便是先要使MSP430单片机进入BSL状况。而要想使MSP430单片机进入BSL状况,必需求在RST和TCK(或许TEST)引脚施加一个特定的时序,通过运用MSComm的两个特点DTREnable和 RTSEnable能够发生所需求的时序。DTREnable特点是确认在通讯过程中是否运用DTR(Data Term inal Ready)线。若DTREnable设置为True,则运用DTR线;若为False(缺省),则制止DTR线。RTSEnable特点和 DTREnable特点相似,RTSEnable特点用于确认是否运用RTS(Request To Send)线。若RTSEnable设置为True,则运用RTS线;若为False(缺省),则不运用RTS线。运用MSComm的这两个特点,能够在 VB6.0中通过以下代码使MSP430单片机进入BSL状况。
其间,DTRCheck和RTSCheck这两个控件十分有用,能够在不改变硬件的情况下使DTR和RTS输出的逻辑电平反相,这使得该BSL上位机软件既能够适用于有TCK引脚的单片机,也能够适用于有TEST引脚的单片机,大大增强了BSL软件的灵活性。
使MSP430单片机进入BSL状况是要害的一步,打通了这一底层通讯的要害环节之后,就能够一步一步地编写调试其他各个软件模块了。MSP430单片机BSL编程软件的规划流程图和BSL编程软件界面图如图5、6所示。
结语
选用USB转串口芯片PL2303和VB6.0编程言语规划出了一款高性价比的BSL编程东西,该BSL编程东西具有运用便利、操作简略、本钱低价等长处,通过USB虚拟串口,不光能够对烧断熔丝的MSP430系列单片机进行程序晋级等操作,并且也能够作为用户学习MSP430单片机的廉价编程东西。通过重复屡次修正及完善,该BSL编程东西运用于某机床厂的实践项目中,并被多个高校的大学生在实践立异中运用,取得了较好的作用。