当前位置:首页 > 单片机 > 单片机
[导读]针对没有集成在系统编程(ISP)功能的单片机,提出一种基于串口RS 485协议通信的通用ISP方案。避免了此类单片机系统在程序升级时对编程器、仿真器等特定工具的依赖。以80C196KC单片机为例,通过FLASH、RAM、单片机的UART口、PC机及相关软件模块的设计实现了程序的在线升级。与其他方案比较,此方案具有代价低,设计简单,可靠性高等诸多特点。

0 引 言
   
一般来说,在系统编程(ISP)是指依靠某种外部工具(除了常规的并行编程器以外)直接给处理器内部集成的程序存储器编程。这里所指的外部工具常见的有很多种,不同的处理器供应厂商可能提供不同的方案。例如,根据编程接口的不同,就有JTAG、单线、串口、SPI口等多种方式。尽管编程方式有所不同,但其原理都是类似的,就是依靠外部条件触发处理器,令其脱离正常执行的内部常规用户应用程序代码的进程,转而执行保存在其程序存储空间内某个固定位置处的控制擦除程序存储器及给程序存储器编程的代码(或是处理器外部提供的执行代码),然后通过某种与PC计算机的通信方式,将用户指定的某个在PC上编译完成的嵌入式处理器可运行的二进制代码文件编程人嵌入式处理器内的程序存储器。这种编程方式只需要常规的硬件配置(某些处理器可能需要某些叫作下载线的简单硬件电路)支持,而不需要特别的编程器(指并行编程器)支持,所以即使处理器芯片已经焊接到了电路板上也可以实现编程,这也就是ISP的真实含义。

1 通用的在系统编程方法
   
随着嵌入式系统技术的发展,电可擦除的FLASH芯片以容量大,价格低,编程方便等优势得到了广泛的应用。用一片FLASH作为程序存储器的系统无法直接实现在系统编程(ISP),为了方便现场调试和程序升级,可以采用集成ISP功能的MCU(如AVR、部分ARM芯片等),或者采用双FLASH设计等方法实现ISP功能。但有不少系统仍然使用不具备直接ISP功能的MCU(如M68K、N80C196等),同时因印制版面积、成本等原因的考虑也没有采用双FLASH芯片,此类系统在程序升级时通常需要编程器、仿真器等特定工具,在现场调试时很不方便。
    针对使用不具备ISP功能的MCU系统,只要满足以下四个条件,就可以按照本文的方法进行ISP设计。考虑自编程过程中文件出错、断电等特殊情况,此方案可实现故障保护。
    (1)程序空间和数据空间统一编址,程序可以在RAM中运行;
    (2)FLASH芯片正确连接了写信号;
    (3)拥有能放下Update程序并让其正常工作的额外程序/数据空间;
    (4)具备某种通信能力(例如以太网、串口、CAN、MODEM等)。
    程序分布如图1所示。这种情况下需要把整个工作分为三部分完成。第一是引导程序(称为Boot程序);第二是升级程序(Update程序);第三是正常程序(Normal程序)。Boot程序负责控制程序的运行模式:升级模式、正常模式。如果进入升级模式,Boot程序需要将Update程序复制到指定的运行空间,并转入执行Update程序;如果进入正常模式,Boot需要做的工作就十分简单,可以直接把控制权交给正常程序。要注意Update在自编程时不能破坏Boot程序。此时Normal程序不再负有复制Update程序到指定运行空间的任务,完全按照正常的模式运行。

    按照这种方案,Boot程序和Update程序是自编程设计的核心内容,只要保证这部分程序代码的完整性,就能拥有在线编程的能力。要对这部分程序代码区进行保护,保证在第一次写入程序存储器后就不会再被擦除。这样即使在自编程时发生灾难性故障,Boot程序和Update程序是不会被破坏的,仍然可以继续运行,保证下次仍然可以进行自编程。程序完成后必须分别固化到程序存储器的指定空间,以保证程序的正常运行。

2 80C196KC ISP的通信模块设计
    实现80C196KC ISP的核心思想即用AT29C256代替常用的M27C256做程序存储器与80C196KC相接,区别在于前者1引脚接/WR,后者1脚悬空;再用一片DS1230Y(NV SRAM)做中转。AT29C256分三个空间存放引导程序、更新程序和正常控制程序;其中引导程序用于80C196KC和上位机进行串口通信,接收上位机编译好的更新程序(.Hex文件),并把它放到DS1230Y中,在下载完成后把其中接收的程序代码发回上位机进行校验,校验无误后跳转去运行更新程序;更新程序用于将DS1230Y中校验无误的新程序复制到AT29C256的正常控制程序空间;正常控制程序即待更新或已经更新的系统程序。每次系统上电后由键盘判断是否需要在系统编程,如果需要,则经过引导程序和更新程序执行后,跳转到正常控制程序空间运行更新了的程序。如果不需要,则直接跳转到正常控制程序空间运行。在从AT29C256取指令时,注意WE脚保持高电平。
2.1 通信协议
    目前微机的串行通信口都是基于RS 232协议的,但因其传送速率较低、抗干扰能力较差、传送距离太近等缺点,该系统采用RS 422通信方式。RS 422每个通道通过二条信号线进行传输,采用平衡驱动、差分接收形式,对在接收器输入端出现的共模噪声起到了抑制作用,可以允许较大的信号衰减。另外由于两者之间不共地,不存在回路之间的电位差,彻底消除了远距离信号传输中因地电位不等造成的影响,从而有很强的抗干扰能力,并且可获得较长的传输距离。
2.2 通信接口电路
    鉴于篇幅,这里只给出串口通信中PC端硬件接口部分。
    首先由一块MAX232芯片把PC机串行口的RS 232电平转换为TTL电平,然后通过6N137的光电隔离模块进行隔离,再通过MAX 487芯片完成RS 232协议到RS 422协议的转换。其实也就是一个电平被转换为两个压差电平的过程,如图2所示。

2.3 通信软件设计
   
单片机(下位机)软件开发采用PL/M语言。主要由更新程序和通信程序组成,通信程序又包括通信主程序、接收、发送和定时中断程序等。其中通信主程序是不断循环执行的,如果上位机发送了数据则进入接收中断处理程序,并同时在定时中断中设置一个在接收中断中被清零的计数器,当定时器溢出某个时间范围时,说明接收完毕。这时触发发送中断,上发接收到的整个文件内容用于校验。这里仅给出部分更新程序代码。


    固化中断服务程序,并通过在PL/M语句中嵌入汇编语句完成程序的跳转。下载完成后,将程序复制到AT29C256后运行新程序,DS1230Y仍用作数据存储器。
    PC(上位机)操作界面应用Delphi 6.0开发。在Delphi 6.0开发环境下实现串行通信有多种方法,如:调用MSCOMM.OCX控件、在Windows下使用Win-dows API、应用嵌入式汇编语言、直接构造Delphi中的通信控件、利用动态链接库(DLL)等。考虑到该系统的通信情况比较简单,所以直接使用MSComm组件编写串口通信软件,主要包括三个方面的设计内容:
    (1)收发数据,指的是在PC机的串口与80C196KC的串口UART之间能收发字符串,二进制串(16进制显示);
    (2)收发文件,指的是在PC机的串口与80C196KC的串口UART之间能收发字符型文件,16进制文件(.Hex文件)
    (3)差错校验及系统可靠性设计。通信的成功与否最后还要看校验的结果,即接收端是否能正确无误的接收到发送端发送的内容。差错控制流程图如图3所示,核心代码如下:

    最终开发出的操作界面如图4所示,包括下载进程显示条,串口初始化设置框,收发数据文本框,选择打开发送文件按钮,发送文件大小显示框,校验按钮,文本与16进制类型选择框以及通信状态显示项。

3 结 语
   
提出了基于串口通信的通用的单片机ISP方法并针对80C196KC实现了PC机上已编译程序的在线下载。通过回声法校验,返回的接收文件与发送文件完全一致,系统可靠性高,设计简单,实现容易,具有一定的理论研究意义和应用前景。为“国家杂交水稻工程技术研究中心”人工气候室智能控制系统的系统程序更新,升级和远程维护提供了方便。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

串口作为单片机开发的一个常用的外设,应用范围非常广。大部分时候,串口需要接收处理的数据长度是不定的。那么怎么才能判断一帧数据是否结束呢,今天就以STM32单片机为例,介绍几种接收不定长数据的方法。

关键字: 单片机 串口 STM32

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

单片机

21600 篇文章

关注

发布文章

编辑精选

技术子站

关闭