在远程通信中实现89LPC932的ISP功能

2007-03-09 19:03:27来源: 互联网
早期单片机应用软件开发完成以后,是通过相应的编程器将程序烧写入单片机的ROM或EPROM里,这样每一次擦写程序都需要将芯片从电路板上拆卸下来,不利于研制开发,对于日后的产品软件升级也非常不方便。随着新一代单片机的出现,具有ISP功能的芯片得到越来越多嵌入式系统开发工程师的青睐,ISP功能的使用方法也越来越多,飞利浦公司的89LPC932是一款较早推出的高性能处理器。 ISP(In-System Programming,在系统编程)是指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。 用反汇编软件将89LPC932中Boot ROM源代码(机器码)反汇编为ASM文件,分析其数据处理与通信控制,就能明白ISP功能实现的具体方法,并修改使其能够为我们所用,在远程RS485通信网络中实现ISP功能,从而在某些特定环境下依然能够稳定工作。 1 对Boot ROM中部分代码的分析 在这里只针对通信部分进行简要阐述。 1.1 自动波特率的确定与校验 上位机按照自身的波特率,向下位机发送一个大写的英文字符“U”,ASClI码为55H,二进制为“01010101B”,也就是一组“O”,“1”相间的数据。下位机收到数据,计算出1位数据的传输时间(2个“1”之间的时间间隔),则所对应的通信波特率就可以计算出来,下面是汇编语言程序: EXECHO. RET ;返回 计算出波特率后,调整串口,再收发一个字节,将得到的数与U的ASCII码相对比。如果相等,程序继续执行;如果不相等,程序循环等待。从这里可以看出,为保证通信成功,上位机至少要向下位机发送2个“U”。 1.2 通信报的内容 通信建立后,就可以接收各种命令,并进行校验和的比较,判断本次通信是否成功以及回传相应的数据。汇编语言程序如下: 在系统稳定、工作状态正常时,Boot ROM中ISP程序接收、发送的数据主要就是这些,其他异常处理部分不再赘述。 2 远程通信网络的使用问题 当在远程RS485通信网络中(上位机与下位机一对一情况下)想使用89LPC932的ISP功能时,发现直接使用应用软件“Philips ISP下载器”会提示串口通信失败。利用“串口调试器SSCOM”调试发现,单字节通信正常,多字节通信不正常,分析程序发现问题出现在通信转换模式上。89LPC932的Boot ROM中,ISP程序使用RS232标准工作,是全双工工作模式;而通信网络中使用RS485标准工作,为半双工工作模式,两者混用当然会出现问题。 知道问题所在,程序修改起来就方便多了。首先,对于上位机发来的指令,不再采用收1个字节回传1个字节的方法,而是先将控制命令全部接收下来,再分析处理。然后,把所需数据发送出去,将整个工作过程转为半双工形式,修改后的通信报PROCESS部分程序如下: 需要注意的是:在子程序ECHO中,回传1个字节那一步要取消掉,这是改为半双工的关键。另外,这里所谈到的只是针对点对点通信,如果网络中有多个下位机共存,那么上位机在发送命令时,需要注意所指定下位机的软、硬地址问题。 3 结论 通过实验证明,该方法简单有效,能够在原有Boot ROM ISP程序基础上将其成功地移植到远程RS485通信网络中。全双工工作模式改为半双工工作模式,操作简单,能够保证通信正常,并能完全利用原有的多种ISP下载器,减少了开发成本,这为飞利浦89LPC932Flash单片机的应用提供了一个新颖的使用方法。

关键字:远程通信  通信  实现  功能

编辑: 引用地址:http://www.eeworld.com.cn/wltx/qtjs/200703/3234.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
远程通信
通信
实现
功能

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved