技术中心
 
 

改造成品单片机系统的方法

   日期:2011-05-31     来源:互联网    作者:陈柏成    
核心提示:通过一个监控系统的研制,阐述了对一个不熟悉的微机系统进行改造时应遵循的原则及基本方法,介绍了双端口存贮器IDT7132和看门狗WDT的用法。
通过一个监控系统的研制,阐述了对一个不熟悉的微机系统进行改造时应遵循的原则及基本方法,介绍了双端口存贮器IDT7132和看门狗WDT的用法。
关键词:监控系统,单片机,双端口存贮器,WDT
   
  制作微机监控系统时,若受监控对象本身也是一个微机系统,且又没有电路图、程序等资料时,如何采集对象的内部数据(如CPU状态等),如何修改对象的程序方不至令原系统运行不稳定和崩溃,如何充分利用监控对象的资源,是一个带有普遍性的问题。
  笔者研制的“数字实验监控系统”,其主要功能是采集30台学生实验机状态和过程信息,送往中心主机显示。监控对象是一台型号为DLES的数字电路实验机,这是某公司的产品,除简单的用法说明书外别无其它资料。该机的核心是单片机8031,带6位键盘和数码管显示、并行口8155等,可选择CPU工作方式产生各种实验信号。

1用双端口RAM采集数据
  监控系统的首要任务是获取受控对象的各种状态信息。用IO线取得的只是其外部信息,且当高频时容易遗漏。要取得重要的内部信息,必须设法使监控对象的CPU自动送出信息,即采用双CPU通讯。无论用并行通讯还是串行通讯,都要大幅修改原机程序,且要占用原机CPU很多等待、检测通讯口的时间,很容易破坏原机的固有时序。较好的方法是采用共享存贮器方式,只要在原机程序的适当位置插入一段程序,令其定时将自身的重要信息(例如片内RAM的256字节内容)送到共享存贮器就可以了。
本系统采用双端口存贮器IDT7132来实现两CPU的通讯。双口存贮器有2套独立的IO电路,可供2个CPU在不同时刻读写各个存贮单元。但同时访问同一存贮单元会产生冲突。IDT7132有一套冲突仲裁电路,使先到一方获得优先权实现读写操作,而向另一方发出一个冲突信号BUSY。
  冲突发生时,访问存贮器失败的一方要将刚失败的一句指令再执行一次,本系统是将BUSY线接到单片机的中断线INT0,电路见图1。但单片机的程序指针PC不能直接被读写,而中断的发生又是随机的,无法掌握其出现的时刻,要重复执行中断前的一句指令殊不容易。为实现这功能,用了一点技巧:因为,中断服务程序执行前,PC值必自动压入堆栈,可在中断服务程序中将该PC值出栈,作减3处理后再入栈,则中断结束出栈的PC值已退回指向到中断前的一句指令了。
 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢