欢迎来到天天文库
浏览记录
ID:26175267
大小:51.50 KB
页数:6页
时间:2018-11-25
《在应用可编程测控网络设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、在应用可编程测控网络设计
2、第1摘要:介绍一种在应用可编程单片机系统设计方案。该方案设计简单,技术成熟,适合于基于8051核的CISC结构的单片机系统。详细介绍了该方案的实现方法与引志程序及上位机软件的设计。电子产品的更新换代越来越快,怎样缩短设计时间,快速推出产品,降低设计成本和提高系统整体性能是每个设计人员共同关心的问题。一种叫做在应用可编程(InApplicationProgramming-IAP)的设计方案应运而生,它可以在现场(当原存在的代码正在运行时)重新写入运行代码。这种方案的优点是可以降低开发代码的时间、可在装配线上测试和改装产品、可在现
3、场修正代码错误、可以容易地添加产品新功能甚至可以远程进行系统的升级。目前,实现在应用可编程一般有两种方法:一种方法是使用与单片机配套的专用芯片;另一种是采用新型的支持在应用可编程的单片机。本文介绍一种基于AT89C51单片机的在应用可编程的设计方案,它只占用AT89C51的UART,只需少数的几块芯片就能实现上述功能。特别适用于需要用UART进行通讯的测控网络的设计。500)this.style.ouseg(this)">1设计思路基于8051核的单片机提供两个独立的地址空间,一个用于程序存储器,一个用于数据存储器。这种特殊的地址结构在任何情况下都不会
4、将数据写入程序空间,保护程序代码不会被数据覆盖,但这种特性使单片机在应用可编程不能实现。如果采用一种方法“欺骗”系统使之误认为程序存储器即为数据存储器,则可向程序存储器中写数据了。“欺骗”系统的方法是在IAP期间暂时将程序存储器“重新分类”为数据空间而不是程序空间,然后在IAP完成后再将它重新分类为程序空间。这种方案需要一款存储器既可以当作数据存储器又能作为程序存储器。现在市面上的多种具有掉电保护功能的静态随机存储器既具有数据存储器的高读写速度又具有程序存储器的非挥发性。如DALLAS公司的DS1230Y-70是与通用RAM27256管脚兼容的,内嵌锂
5、电池保护的非易失性存储器,500)this.style.ouseg(this)">读写速度为70ns,掉电状态下可以保存数据10年。按照上述思路设计的具有在应用可编程能力的单片机系统结构框图如图1所示。该系统有以下几个特点:(1)有三块RAM,其中RAM3是数据存储器,RAMA、RAMB既是数据存储器又是程序存储器,RAMA和RAMB采用DS1230Y-70静态RAM。RAMA和RAMB具有相同的地址,当其中一块作为程序存储器时,另一块是数据存储器。AT89C51的数据空间与地址空间分开的特性保证了这两块存储器不会冲突。(2)增加了选择电路,用来将程序
6、存储器和数据存储器“重新分类”,通过DN_CON控制信号线来选择是钭。(3)增加了串行EEPROM以保存重要的信息,如模块号及下载标志等。AT89C51具有4K的片内Flash存储器,可以存放引导程序。系统初始化、串口中断等程序作为引导程序,固化在AT89C51的Flash存储器中,而将主程序放在32KB的静态RAM程序存储器中。因此,该系统程序存储器的地址空间从0000h~03FFh和8000H~0FFFFH。而数据存储器地址从0000H~0FFFFH,如图2所示。引导程序中将串口中断设定为最高优无级,当AT89C51接收到程序代码下载的命令后,将向
7、8000H~0FFFH的数据空间依次写入程序代码。当程序代码写结束时,改变DN_CON控制信号,使原来的数据存储器变为程序存储器,而原来的程序存储器变为数据存储器。在串口中断程序结束时,将堆栈中的串行中断返回指针指向8000H,并退出中断,使程序跳至8000H运行下载的程序代码。图2中串行EEPROM采用基于I2C总线的24C01芯片,用以存放一些关键的数据信息,加测控模块的站号、下载标志等。2选择电路的实现选择电路如图3所示,74HC157是四路二选一芯片。当P1.0(DN_CON)为低电平时,A=Y,此时RAMA的RD接PSEN,B的RD接RD数据
8、读出线,A作为程序存储器,RAMB作为数据存储器。反之,当P1.0为高电平时,B=Y,RAMB是程序存储器,RAMA是数据存储器。3引导程序的设计引导程序的设计,关键要解决以下问题:(1)系统上电时,要能自动设别该系统的主程序代码是否下载及下载在哪个静态RAM中,并能自动正确执行。(2)要保证其它的中断能正确响应,包括除程序下载命令外的其它串行中断。(3)在程序下载串行中断响应后,要能正确退出中断,并跳到主程序的正确位置执行代码。在8000H开始的主程序区的顶端设立中断映射区如图2所示,在原来的000BH、0013H等中断入口地址处设立相应的长调用语句
9、Ljmp800BH,Ljmp8013H,将除串行中断以外的所有中断跳至从8000H开始的中断映
此文档下载收益归作者所有