C8051F064单片机在远端测控装置中的应用
且需要掉电保持的数据,如模拟量的修正值等;实时时钟内114字节的RAM读写速度较快,而且访问方便,所以用它存放需要掉电保持的中间变量,这样可以随意读写;8KB的E2PROM受总线逻辑的限制,读写较慢,但数据区较大,用来存放功能的设定值,在程序初始化的时候把它读出并放到中间变量区,以后不对其操作,修改内部数据操作不宜在中断中进行,防止延长中断时间。
看门狗
本文采用的是22.1184MHz晶振,那么看门狗监控时间最长只有47.4ms,这对实时性要求不高。本文采用中断喂狗的方式。一般来说单纯的中断喂狗是不可以的,因为程序中起作用的是主循环,而当主循环进入非正常状态时,中断往往还在进行,所以用中断喂狗还需主循环配合。这里采用的是5ms中断喂狗,在中断中用变量a累加,当a累加到100时,就不再喂狗;而主循环内不断将a清0,这样就可以把看门狗的时间延长到500ms。
模拟量滤波
C8051F064的ADC是逐次逼近型的,虽然速度快至1MSPS,但数据的抖动特别大,所以在混合系统中应用时,外围一定要加滤波电路,如果在硬件设计中没有考虑也没关系,可以充分利用它的速度,在内部采用软件滤波的方式。本系统对模拟量的采集速度要求不高,只求稳定和准确,在内部采用了20个点的中位值平均滤波,然后再用20次平均值算法,这样,就算外围没有任何滤波措施,也能得到很好的效果。
串口
C8051F064内部带有两个UART,其中串口0经光电隔离转换为RS-485信号,用于跟现场的其他设备连接,串口1再加上6个GPIO口经电平转换后成为全功能标准的RS-232接口,用于与Modem、电台、CDMA等连接。用C8051F064的SPI口经MAX3100扩展成UART,通过外部的可选配件,转变成RS-232或RS-485信号。
模拟量
C8051F064的模拟量输入最高不超过3.6V,所以接入信号时要注意其范围,针对此系统,由于现场信号大部分是4mA~20mA电流,因此用100Ω的精密电阻,配上2.5V的精密电压源,可以将模拟量的精度调整到1‰。另外,启动内部ADC0的窗口检测功能,可以方便地实现模拟量的上下限越限报警功能。
数字量
大部分数字量直接挂在总线上,另外,有两路开关量输入直接接到单片机引脚,并在内部分配这两个引脚为定时/计数器的输入,这两路就可以兼做脉冲量了。
单片机资源分配
C8051F064的端口功能分配使用交叉开关的方式,而且还带有优先级,这种方式很灵活,但是要求设计师在电路设计时就要将内部的功能分配就绪,也就是说电路板加工完成后就不可以随意修改交叉开关了。
复位
C8051F064除了实现传统的RESET信号复位外,还有上电、掉电、外部信号、软件命令、比较器0、时钟丢失检测及开门狗等复位功能,共7种复位方式。单片机复位后可以通过查询寄存器得知是何原因引起的复位,这对数据的处理和故障分析都是很有用的。本系统使用的是上电、软件命令、时钟丢失和看门狗,增加软件命令复位的原因是:由于这些设备的安装地点都是比较偏远的,当中心站察觉此设备异常时,可以将其重新启动,以解决一些异常问题。
三 一些技术问题
数据的存储
在这个系统中有多个可以存储数据的存储器,如256字节的内部RAM、4KB的内部扩展RAM、32KB的外扩RAM、128字节的Flash、实时时钟内114字节的电池保持RAM和外扩8KB的E2PROM,这么多的数据存储区,一定要仔细分配其用途,以便充分发挥功能和速度。本系统作如下分配:256字节的内部RAM读写速度最快,而且它是单片机内核所占用的,所以要减少使用,它用在对速度要求较高且频繁使用的地方,如中断内的变量等;4KB内部扩展RAM和32KB外扩RAM的地位是等同的,一般用作程序的中间变量;128字节的Flash是整片修改的,所以修改之前要把所有数据读到缓冲区,将要修改的字节改掉,再把整片擦除,然后把数据写入。虽然写比较麻烦,但是读取很方便,所以用它存放一些不经常改动而且需要掉电保持的数据,如模拟量的修正值等;实时时钟内114字节的RAM读写速度较快,而且访问方便,所以用它存放需要掉电保持的中间变量,这样可以随意读写;8KB的E2PROM受总线逻辑的限制,读写较慢,但数据区较大,用来存放功能的设定值,在程序初始化的时候把它读出并放到中间变量区,以后不对其操作,修改内部数据操作不宜在中断中进行,防止延长中断时间。
看门狗
本文采用的是22.1184MHz晶振,那么看门狗监控时间最长只有47.4ms,这对实时性要求不高。本文采用中断喂狗的方式。一般来说单纯的中断喂狗是不可以的,因为程序中起作用的是主循环,而当主循环进入非正常状态时,中断往往还在进行,所以用中断喂狗还需主循环配合。这里采用的是5ms中断喂狗
- 基于C8051F340驱动与采集的CCD光电遥测垂线仪(02-01)
- 基于单片机C8051F060的智能功率柜的设计应用(01-12)
- 基于单片机的存储设备转储器(05-03)
- 基于单片机设设计的智能无线网络汽车测试系统(12-02)
- 基于C8051F的18B20程序(12-01)
- 基于C8051F的AD UART0 KEY FLASH TIME3程序(12-01)