【摘要】计算机与通信相结合,克服了时间和空间上的限制,为人们远距离利用终端共同使用计算机提供可能,但远程通信经常受到通信距离的限制。本文介绍了一种以美国Cygnal公司的C8051F020单片机为主CPU,采用公用电话网连接多个终端,按键切换达到实现交换机多个终端设备间的数据通信的经济、可靠的方法,并给出了软件的设计流程。该系统突出利用了C8051F020高性能、低功耗的特点,由于采用现有的公用电话网,使PC与终端之间的通讯距离不受限制,也为一些人类不易长时间驻留的高温高压环境下的工作带来方便。 【关键词】C8051F020 交叉开关 多路数据终端 AT指令
0 前言: Internet网络的诞生,使得计算机之间的远程通信变得越来越重要,也越来越简单,但在工业领域,更多时候是要通过单片机来实现对远程设备的监控及管理,这就对系统稳定性和通信距离的支持有比较高的要求。本文介绍的远程多数据终端通信由于采用现有的公用电话网,使成本大大降低,而且克服了通信距离上的限制,从而构成地区范围的乃至省际间的远程监控系统。但传统的51单片机由于系统扩展芯片多,线路复杂,时常资源扩展受限、易出故障、编程麻烦等缺点,而且可靠性和稳定性也难以保证。Cygnal公司推出的具有高速、高性能、低功耗、高集成度并与8051完全兼容的C8051FXXX系列单片机则良好地解决了这些问题。
1 C8051F020简介:
C8051F02X系列单片机是高度集成的混合信号系统级芯片(SOC),具有与8051指令集完全兼容的CIP-51内核。它在一个芯片内集成了构成一个单片机数据采集或控制系统所需要的几乎所有模拟和数字处设及其他功能部件。其技术发展有: 首先,大力提高指令运行速度,推出了CIP-51的CPU模式。在这种模式中,废除了机器周期的概念,指令以时钟周期为运行单位。平均每个时钟可以执行完成1条单周期指令,从而大大提高了指令运行速度。与8051相比,在相同时钟下指令信平均运行速度为原来的9.5倍。 其次,I/O从固定方式到交叉开关配置。一改以往I/O端口固定为某一特殊功能的输入/输出口的方式,而采用开关网络以硬件方式实现I/O端口的灵活配置。遵循一定的优先权顺序,通过相应的配置寄存器控制的交叉开关,将内部的输入/输出电路单元配置到所选择的端口上。这种资源分配的灵活性是通过使用优先权交叉开关译码器实现的。不管引脚被分配给数字外设或是作为通用I/O,总是可以通过读相应的数据寄存器得到端口I/O引脚的状态。 再次,片内还配置了标准的JTAG接口( IEEE1149.1)。在上位机软件的支持下,通过串行的JTAG接口可直接对安装在最终应用系统上的单片机进行非侵入式、不占用片内资源、全速在线系统的调试。该调试系统支持观察和修改存储器和寄存器, 同时支持断点、观察点、单步运行及停机命令。在使用J TAG接口进行调试时, 所有的模拟和数字外设都可全功能运行。不但如此,C8051F020的JTAG逻辑还可为在系统测试提供边界扫描功能。通过边界寄存器的编程控制可以对所有器件引脚、SFR 总线和I/O口的弱上拉功能实现观察和控制。 此外,它为单片机提供了一个完善的时钟系统,在这个系统中,片内设置有一个可编程时钟振荡器(无需外部器件),可提供2MHz、4MHz、8MHz、16MHz时钟的编程设定[1]。 因此,它也是最小功耗系统的最佳支持,实现了片内模拟与数字电路的3V供电标准,大大降低了系统功耗;完善的时钟系统可以保证系统在满足响应速度要求下,使系统的平均时钟频率最低;众多的复位源使系统在掉电方式下,可随意唤醒,从而可灵活地实现零功耗系统设计。非常适合于要求速度快、可靠性高、扩展功能强和节电的应用系统。
2 多终端数据通信硬件系统
由于电话交换机可以很容易地同时处理多个通话而不相互干扰,从而为实现多终端间数据通信提供可能。远端的数据终端设备(DTE)通过数据电路与计算机系统相连。数据电路由串行通道和调制解调器组成。调制解调器将DTE送来的数据信号变换为模拟信号再送往信道,或者反过来,把信道送来的模拟信号变换成数据信号再送到DTE。从而建立了终端设备与终端设备的连接,为数据通信建立通道。 该系统采用7个按键开关,用户可以通过选择按键来呼叫所需要通信的终端分机。 按键直接连接到C8051F020的P4.0~P4.7(只有7个有效)这几个I/O端口上,P4 口工作方式选择为漏极开路方式,通过向P4各个端口写1将其配置为输入。由于该款单片机的工作电压为3V,其输出电压为3V,而液晶显示器驱动模块的工作电压为5V,所以要实现两者之间的通讯, P7及P3口必须外接上拉电阻,通过外接5V数字电源将电压上拉到5V,并且端口工作方式必须选择漏极开路方式。 C8051F020 具有2个串行通信接口UART0、UART1,分别用于连接到Modem以及与计算机进行通讯。 经过优先权译码表得出引脚分配,系统将P1.3 和P1.4分配给UART1端口的TX和RX。由于C8051F020与常用Modem电源不匹配,我们用采用自制的MODEM串口电缆,内置MAX232实现RS-232与TTL/CMOS之间的电平转换,其系统连接框图如图1所示.
图1: 多终端数据通信
3 软件设计:
软件部分主要包括四大块:系统初始化,检测Modem连接与否,与终端建立连接,终端数据交换。程序流程图如下图2所示:

3.1寄存器的初始化 为了便于串口波特率的设定,使用频率为22.1184 MHz的片外晶振,将串口波特率定为9600bps,用到了C8051F020的三个定时器(T0、T2和T4)、两个串口(UART0和UART1)。其中,T0作为系统时钟,T2和T4分别作为UART0口和UART1口的波特率发生器,T0工作于方式2,T2和T4工作于波特率发生器方式,UART0和UART1均工作于方式1 。 3.2检测MODEM的连接 l MODEM通讯的连接过程 在PC机串行端口与调制解调器进行连接时,主要有以下几个信号决定:
 在这部分中,可以先通过AT&F来检测本地终端与Modem是否连接,确定连接后,再通过用户选择的通信终端来跳入特定的子程序,在子程序中通过拨打对方分机号来取得和对方的的连接。 3.3终端间的数据通信 为了使终端间数据能流畅地进行交换,我们在片内XRAM中设了四个缓冲区:aRecBuf0、aTransBuf0、aRecBuf1和aTransBuf1。前两者是用来单片机与Modem间通讯时数据缓冲,后两者是用来单片机与PC机间通讯时数据缓冲。同时我们接收采取了中断方式,发送则采取查询方式。示意图如下图3所示:
 图3 数据通信示意图
程序实现如下:


4 小结
C8051F02X具有低功耗(3V工作电压)、大容量存储器、高速度、高集成度等特点,广泛应用于工业控制、测量系统。而整个多路终端通信系统利用现在公用电话网,不但经济可靠,而且克服了数据通信对距离的限制,具有广泛的实用价值。
参考文献:
1 潘琢金 施国君.C8051FXXX高速SOC单片机原理及应用[M]. 北京:航空航天大学出版社,2002.5 2 深圳市网通软件有限公司.Modem应用技术[M].北京:电子工业出版社,1995
|