历史上的今天
返回首页

历史上的今天

今天是:2025年02月27日(星期四)

正在发生

2018年02月27日 | 远程通信中如何实现89LPC932的ISP功能

2018-02-27 来源:eefocus

    早期单片机应用软件开发完成以后,是通过相应的编程器将程序烧写入单片机的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部分程序如下:

3.jpg?imageView2/2/w/550

    需要注意的是:在子程序ECHO中,回传1个字节那一步要取消掉,这是改为半双工的关键。另外,这里所谈到的只是针对点对点通信,如果网络中有多个下位机共存,那么上位机在发送命令时,需要注意所指定下位机的软、硬地址问题。 3 结论 通过实验证明,该方法简单有效,能够在原有Boot ROM ISP程序基础上将其成功地移植到远程RS485通信网络中。全双工工作模式改为半双工工作模式,操作简单,能够保证通信正常,并能完全利用原有的多种 ISP下载器,减少了开发成本,这为飞利浦89LPC932Flash单片机的应用提供了一个新颖的使用方法。

需要注意的是:在子程序ECHO中,回传1个字节那一步要取消掉,这是改为半双工的关键。另外,这里所谈到的只是针对点对点通信,如果网络中有多个下位机共存,那么上位机在发送命令时,需要注意所指定下位机的软、硬地址问题。

3  结论
    通过实验证明,该方法简单有效,能够在原有Boot ROM ISP程序基础上将其成功地移植到远程RS485通信网络中。全双工工作模式改为半双工工作模式,操作简单,能够保证通信正常,并能完全利用原有的多种ISP下载器,减少了开发成本,这为飞利浦89LPC932Flash单片机的应用提供了一个新颖的使用方法。


推荐阅读

史海拾趣

Geo Semiconductor Inc公司的发展小趣事
增加CPU温度监控电路,确保在高速运算时CPU温度不会过高,防止因过热导致的系统崩溃或损坏。
Foxconn_Optical_Interconnect_Technologies__Inc.公司的发展小趣事
选用高质量、高可靠性的元件,减少因元件损坏导致的故障。
登丰微(GSTEK)公司的发展小趣事

歌普电子不仅注重产品的品质和技术创新,还非常重视客户服务。公司始终秉承“用心服务”的理念,为客户提供全方位的售前、售中和售后服务。无论是产品咨询、技术支持还是售后保障,歌普都能迅速响应并满足客户的需求。这种高效、专业的服务赢得了客户的高度评价和信赖,也为公司的持续发展奠定了坚实的基础。

Formosa MS公司的发展小趣事

歌普电子始终将产品质量视为企业的生命线。公司采用精细化管理模式,并严格执行ISO9001质量管理体系,确保每一件产品都达到高标准。同时,歌普的产品还通过了UL、CSA、TUV等国际安全认证及RoHS2.0、REACH欧盟绿色环保检测,进一步证明了其产品的可靠性和环保性。这些努力使得歌普在市场上获得了广泛的认可,与众多知名企业建立了长期稳定的合作关系。

Graseby Infrared公司的发展小趣事
电动机负载过大或负载不平衡也可能导致接触器频繁动作。
FETek Technology(东沅)公司的发展小趣事

在快速发展的过程中,东沅始终坚持以客户为中心的经营理念。他们深入了解客户的需求和反馈,不断优化产品和服务。同时,东沅还注重持续创新,不断推出具有领先技术水平和市场竞争力的新产品。这些努力使得东沅在激烈的市场竞争中保持领先地位,赢得了客户的信任和支持。

请注意,以上故事仅为虚构示例,旨在展示FETek Technology(东沅)公司可能的发展历程和里程碑。实际的发展情况可能有所不同,具体细节请以公司官方发布的信息为准。

问答坊 | AI 解惑

中嵌学院-嵌入式暑期就业培训班(真正保证100%就业)

中嵌学院-暑期就业直通车培训课-保证100%就业贺! 中嵌教育全新升级改版,强势推出”中嵌学院”专业品牌。中嵌学院联合各签约企业精心打造…….!暑期嵌入式就业培训特色课程,为你提供高质量的就业快速通道。中嵌学院向你郑重承诺保证: 1. ...…

查看全部问答>

寻找新鲜事物! 汽车电子新品、新技术

汽车电子新品、新技术 车身电子 1. 轮胎增强材料状态分析以及空洞共鸣预测新技术问世  https://bbs.eeworld.com.cn/thread-2259-1-43.html 2. 汽车行驶记录仪中USB HOST技术https://bbs.eeworld.com.cn/thread-2256-1-43.html 3. ...…

查看全部问答>

有了.NET Micro Framework , .NET Compact Framework 现在还有用吗?

有了.NET Micro Framework ,    .NET Compact Framework 现在还有用吗? …

查看全部问答>

没有安装声卡驱动下 如何读取声卡的信息??

没有安装声卡驱动下 如何读取声卡的信息?? 如HD-AUDIO设备的 那个HDAUDIO\\FUNC_01&VEN_10EC&DEV_0862&SUBSYS_10EC0862&REV_1000 这个ID怎么读取呀…

查看全部问答>

我想编一个软件,又obj文件生成Intel hex文件,怎么弄?obj到hex转换是咋弄的?

我想编一个软件,又obj文件生成Intel hex文件,怎么弄?obj到hex转换是咋弄的? …

查看全部问答>

【我给xilinx资源中心做贡献】SDI应用

SDI应用spartan6实现的三种速率的SDI: 几乎是step by step,非常好的资料…

查看全部问答>

【我给xilinx资源中心做贡献】实现基于CPLD的CCD采集系统设计源码

实现基于CPLD的CCD采集系统设计源码这个写的真不错…

查看全部问答>

FPGA和单片机通信问题

大家都知道,一般FPCA是3.3V供电,而单片机是5V供电要想实现他们之间的通信,怎么解决他们之间的压差呢?忘了解的高手们给以指点,咱们也讨论讨论自己都是怎么解决的。…

查看全部问答>

FFT_IP核函数的使用---V2.1.0IP核说明

一.           V2.1.0版本的基本性能特点:  (1)   采用基-4算法和基-4/2混合基算法;采用频域抽取方式(DIF)的FFT算法;  (2)   输入数据采用定点方式输入(输入 ...…

查看全部问答>

怎么烧写到ADSP-21489中

帮助朋友问一下,使用sigmastudio建立了一个工程,怎么将这个工程烧写到ADSP-21489中,并且断电重启后该工程的代码不至于丢失?感谢大家的帮助\0\0\0eeworldpostqq…

查看全部问答>