《1 引言》

1 引言

在当今的工业生产活动中, 任何系统都离不开数据采集监控。对于关键数据量的监控报警已成为限制故障扩大、保证系统正常工作的重要措施。人机交互设备可以在第一时间为用户提供各种数据信息和故障消息。要害部门对电源供给的稳定性要求很高, 所以数据监控系统必须有很好的实时性和稳定性。当前此类系统多由上位机 (PC或工控机) 、下位机 (单片机、DSP等) 、模拟数据采集设备、数模转换器件、各类存储器构成, 应用广泛 [1]。笔者所描述的DKD01-40系统是一套应用于邮电系统48V通信线路的数据采集监控系统。该系统涉及到对多路通信线路的电压、电流和温度的数据采集、比较报警、故障检测、信息存储、人机界面以及上下位机的通信, 任务繁重且分工明确, 故采取了双CPU结构, 并结合了双口RAM和非易失RAM。

《2 硬件电路》

2 硬件电路

系统结构图如图1所示。它由2片CPU外加双口RAM和非易失RAM构成了处理核心。系统包括关键器件AT89C55WD, CY7C007A以及DS1644, 其他电路以及外围芯片从略。

在实际电路中, 采集数据的通道数可以扩展, 图1中的高速光隔和ADC0816可连接若干套。

《图1》

图1 系统结构图
Fig.1 Structure of system

图1 系统结构图 Fig.1 Structure of system  

 

《2.1 AT89C55WD》

2.1 AT89C55WD

该芯片硬件核心采用了Intel 80C51单片机硬件技术, 两者的引脚排列与标准单元部件相同, 指令系统完全兼容。它是一种低功耗、高性能的8 b高档单片机。该芯片具有以下结构:20 kB的Flash存储器, 256 B的RAM, 可在线编程的32线I/O口, 3个16 b可编程定时/计数器, 1个可编程串行通信口UART, 8个中断源、6个中断矢量、2个中断优先权的中断结构, 双数据指针DPTR0和DPTR1, 硬件看门狗定时器。本芯片最高工作频率可达33 MHz [2]

AT89C55WD资源丰富, 很适合作为本系统的CPU来处理各种复杂的任务。采用双CPU结构, 则可降低单个单片机工作负担, 提高整个系统的工作效率, 增强系统的抗干扰能力和稳定性。

《2.2 CY7C007A》

2.2 CY7C007A

CY7C007A是一种低功耗CMOS型32 k×8 b的双口静态RAM, 具有2组完全对称的地址线、数据线和控制线, 允许2个CPU同时对存储器进行访问。双口RAM内含有的仲裁逻辑 (忙逻辑) , 可以解决2个CPU同时读写同一个地址的问题;中断逻辑允许CPU通过端口直接进行通信;旗语通信逻辑允许2个控制器共享资源;采用主从模式可以方便地扩展芯片数据宽度;访问速度快, 最大时间12/15/20 ns, 各端口完全异步操作。

每个端口都有独立的控制引脚:芯片使能(CE¯)、读写使能(R/W¯)和输出使能(ΟE¯)。有2个标志:忙标志(BUSY¯), 中断标志(ΙΝΤ¯)BUSY¯信号表示即将要访问的存储单元正在被其他端口访问。通过中断标志ΙΝΤ¯信号, 可以使不同的端口、系统之间通过“邮箱”的方式进行通信, 方式简单, 变换灵活, 通过旗语信号可以在端口间传递标志或令牌。旗语逻辑由8个独立于32 k存储空间的8个共享寄存器构成, 任何时候只有一边端口可以控制这些共享寄存器 [3]

基于上述特点, CY7C007A很适合作为多处理器数据监控系统中的数据存储和高速通信设备。在系统中, 双口RAM作为主从CPU的共享存储介质, 较好地满足了系统的各项要求, 提高了主从CPU间交换大量数据的快速性和稳定性, 从而为实现实时监控奠定基础。在硬件设计方面扩展灵活, 减轻了主CPU的负担。

《2.3 DS1644》

2.3 DS1644

DS1644具有32 k×8 b的非易失静态RAM (NV SRAM) 和一个全功能实时时钟RTC, 如图2 所示。该芯片提供了非易失的读写操作, 以及对实时时钟的附加操作。RTC信息存储在8个最高的RAM单元内, RTC寄存器以24 h BCD格式保存年、月、日、时、分、秒数据, 大小月的天数以及闰年的调整是自动进行的。RTC寄存器采用双缓冲结构, 以防止在时钟刷新过程中出现错误数据以及倒数计时过程中由于访问时间寄存器数据造成的时间丢失。

《图2》

图2 DS1644的内部结构
Fig.2 Interior structure of DS1644

图2 DS1644的内部结构 Fig.2 Interior structure of DS1644  

 

DS1644具有自身电源失效电路, 当VCC低于正常变化范围时会自动禁止选择, 以防不可预知的系统操作造成的数据丢失。VCC在允许范围内 (VCC>4.5 V) , DS1644能在读/写周期存取数据, 当小于电源失效点 (VPF = 4.25 V) , 内部时钟寄存器和NV SRAM内数据无法存取。DS1644内部有锂电池, 在无VCC时 (即断电时) , 仍可维持时钟动作, 保持其正常运行和NV SRAM内数据, 其SRAM内数据可以保持10年以上不丢失, 可靠性较高 [4]

系统中许多关键参数均在首次通电时由上位机通过主CPU传送到DS1644中, 它是数据保护和恢复的重要设备。

《3 系统硬件接线》

3 系统硬件接线

《3.1 主芯片接线》

3.1 主芯片接线

图3只列出了CPU、双口RAM、非易失RAM等关键元件, 其他芯片及设备从略。

双口RAM、非易失RAM、总线控制器、键盘、显示设备以及辅助芯片等设备与主CPU相连。通过各个芯片的片选, 可方便地解决主CPU数据总线仲裁问题。

双口RAM、报警装置、若干片ADC0816与从CPU相连。由于ADC0816没有片选, 而且个数根据采集路数而变化, 故从CPU数据总线仲裁电路比较复杂。从CPU的P1.3与双口RAM右片选CER¯相连, 且经反相后参与ADC0816的启动及读数, 这样就从硬件上保证了双口RAM和ADC0816不会发生总线冲突, 如图3所示。

主从CPU之间的通信以及与双口RAM相关的数据总线仲裁完全由CY7C007A自身提供的总线仲裁方式解决。由于该系统只用1片双口RAM, 且系统不涉及对旗语寄存器的使用, 故SEΜ¯Μ/S¯均接高电平。

《图3》

图3 主要芯片接线
Fig.3 Connection of main chips

图3 主要芯片接线 Fig.3 Connection of main chips   

 

《3.2 系统抗干扰设计》

3.2 系统抗干扰设计

由图1可见, 该系统中多处使用了光电隔离器件, 它以光为媒介传输信号, 使输入、输出在电气上完全隔离, 一般内含发光器 (发光二极管) 和受光器 (光敏三极管) 。输入阻抗低 (100~1 000 Ω) , 绝缘电阻极大 (1011~1013 Ω) , 输入、输出间电容很小 (0.5~2 pF) 。干扰源内阻很大, 不足以使发光器发光, 因而使夹杂在有效信号之中的干扰信号被挡在输入回路。光电隔离器具有很强的抗干扰性能、强电与弱电的隔离功能, 并具有一定的驱动能力 (光敏三极管的I0在50 mA左右) [5]

系统中使用高速光隔6N137, 其数据传输率为10 MB/s, 完全满足系统数据采集要求, 而且传送单片机的窄信号脉冲 (如读写脉冲, 500 ns) 延迟与形变很小, 完全满足外围设备对于控制信号波形的要求, 其内部结构如图4所示。

《4 软件设计》

4 软件设计

编程采用汇编语言, 程序流程如图5所示。编

《图4》

图4 6N137管脚图
Fig.4 Pin configurations of 6N137

图4 6N137管脚图 Fig.4 Pin configurations of 6N137  

 

《图5》

图5 程序流程图
Fig.5 Program flow chart

图5 程序流程图 Fig.5 Program flow chart  

 

程时应注意双口RAM和DS1644中的各种逻辑区域不发生重叠, 充分利用CPU中断资源。流程图中的配置表包含了各种变量的报警值、预警值、实际电路中每条支路的分流器类型等重要信息, 故采取了数据冗余的方法, 在DS1644中有3个备份。配置表可由上位机下载, 也可通过键盘手动设置。

此外, 在软件设计中充分利用软件陷阱和看门狗, 以增强系统软件的抗干扰性能。

《5 结语》

5 结语

DKD01-40数据监控系统的硬件、软件设计,

采用了双CPU的结构, 可以有效地对数据进行采集、监控、存储、上传和显示。与单CPU数据监控相比, 系统更稳定, 功能更完善, 具有更强的实时性和较高的精度。而且通过辅助芯片, 可以进一步增加采集通道数。该系统已用于邮电系统通信线路监控, 效果良好, 并取得了一定的经济效益。