黄赞能
(92823部队 三亚 572021)
基于EM78P259N单片机开发的小型数据采集系统*
黄赞能
(92823部队 三亚 572021)
EM78系列单片机结构紧凑功能强大,尤其是其内部集成的ADC、MUX等电路为小型数据采集系统的构建提供了极好的平台。通过对某检测控制系统的介绍,分析了EM78P259N单片机在数据采集方面的应用,并针对系统特有结构提出了相关注意项。
单片机; EM78; 数据采集系统; 亿隆
Class Number TP274
由台湾亿隆公司开发的八位EM78系列单片机广泛应用在家用电器、工业控制、仪器等方面,它优良的单片机结构和性能为许多用户所认同,但与AT89系列、Z86系列、PIC系列等其他单片机比较而言,由于其进入国内市场稍晚一些,还是有很多人对其特点不甚了解。本文通过对利用某型EM78单片机(EM78P259N)开发的一个小型快速数据采集系统的介绍,将该单片机的主要特点和部分功能作一个概述,供大家参考。
EM78系列单片机是采用低功耗、高速CMOS工艺制造的8位单片机,它将众多功能集于一身,包括ALU、ROM、RAM、I/O、堆栈、中断控制器、定时/计数器、看门狗、电压检测器、复位电路、振荡电路、A/D转换器等,成为真正意义上的单片机小系统[2]。在数据处理方面EM78系列单片机采用RISC结构设计、单周期、单字节及流水线指令、五级堆栈、RAM数量从32~157个,最短指令周期100ns,程序页面为1K(多至4页),与其它一些单片机相比,具有更高、更快的运行处理速度。而EM78P259N是EM78系列单片机的一款比较典型的产品,其内嵌2K的ROM存储器,80Byte的SRAM,4路12bit的A/D转换,内置OP功能,IR/PWM功能等,该单片机性价比很高是OTP应用领域一种非常经济的选择。
从结构上来看,EM78P259单片机在片内集成了一个8位的算术运算单元ALU和工作寄存器ACC、2K×13位ROM、80个SRAM、8位时钟/计数器(TCCA,TCCC)和16位时钟/计数器(TCCB)、振荡器、看门狗、8级堆栈、中断控制器、指令寄存器、译码器、4路12位AD转换和其他一些功能模块等,其内部结构框图如图1所示。
图1 EM78P259N功能方框图
由于EM78P259N单片机内部集成了12位逐次逼近式A/D转换器,其转换速度较快,分辨率较高,能满足许多快速采样电路的需求。具体在应用中采用了三个控制寄存器(AISR、ADCON、ADOC)和三个资料寄存器(ADDATA、ADDATA1H、ADDATA1L)来实现转换的控制和保存。由于逐次逼近式AD转换的精确度、线性、速度由ADC和比较器特性决定[2],在程序设计中要考虑到源内阻和内部采样电阻对采样保持电容充电时间的影响;一般经验数值为:源电阻每K程序应等待2μs,如果是低阻源则至少等待2μs。
在小型控制系统、以及智能化电子装备维修设备智能机电一体化产品上利用EM78P259N型单片机的多路12位A/D转换器对电流、电压等信号进行直接采样录取,具有结构简单、速度快、功能强、检测率高的优点;尤其是通过设计方便快捷的人机交互界面,可以简单有效地灵活应对不同的工作环境工作状况,提高了系统的适用性、通用性。笔者在一型电源维修设备上利用该型单片机开发的简单检测控制系统就充分发挥了该单片机作为采样设备的简单、小巧、方便、快捷的优点。
该设备要求控制系统实时对四个监测点进行电压、电流监测,并根据检测结果对两路控制信号输出不同的控制,达到跟踪、稳定的目的。在这里将信号采集部分进行重点描述。根据本系统的设计要求信号采集电路结构方案如图2所示。
图2 信号采集电路结构方案图
3.1 信号调理电路
图3 信号采集电路结构方案图
四个监测对象包括电流和电压而且各路信号幅度变化也各不相同,因此设计合适的信号调理电路是采样前的第一步。根据所采样信号的特点选用了AD521集成测量放大器作为主放大器件。AD521是美国Analog Devices公司生产的三运放测量器,它具有高输入阻抗、低输出阻抗、低失调电压,还有较强的抗共模干扰能力和高稳定度增益[1]。其测量放大原理如图3所示。
图3所示为三个运放组成的测量放大器,差动输入端U1和U2分别是两个运放(A1、A2)的同相输入端,因此输入阻抗很高。A3实际上是一个差动跟随器,其增益近似为1,目的是与后级进行隔离。测量放大倍数由下式确定:
在AD521的实际应用中其增益由外接的两个电阻决定,通过改变两个外接电阻的比值可使增益在1~1000范围内变化。值得注意的是在电路设计时采样信号的输入端与放大器电源地之间应当设置有直流通路,以提供他们正常工作所需的偏置电流。
3.2 选择与采样/保持电路:
信号选择采用了AD7501集成多路选择芯片。该芯片是一种具有八个输入通道(S1~S8)和一个输出通道(OUT)的多路CMOS开关。由三个地址线(A0、A1、A2)以及使能端EN的状态来选择八个输入通道之一与输出端导通[3]。
采样/保持器件(S/H)的选择在数据采集系统中能为A/D转换器件提供恒定的采样值,以减小孔径误差。由于每一次数据采集过程都包括一次采样和一次A/D转换,所以S/H和A/D各完成一次动作所需要的时间之和应小于采样周期[1]。当A/D是12位时转换器的分辨率(常用1LSB表示)等于2-12=1/4096=0.02%,所以与之相配的S/H器件的误差带为0.01%。根据实际应用的需求选择AD582作为S/H器件。由于S/H芯片是一种模拟电路与数字电路混合构成的集成电路,在接线时应将模拟地与数字地分别用引线接到模拟电源和数字电源的参考点上,即模拟地与数字地要分离,以避免数字电路的突变电流对模拟电路的影响。
3.3 CPU电路
由于EM78P259N单片机内部集成了一个12位A/D转换子系统和一个4位多路选择器,当数据采集系统监测信号少(不大于4路)时,利用该单片机进行开发甚至可以省略信号选择与采样保持电路能够实现电路结构的进一步精简,为微型化监测、智能化数控提供实现的可能。在本例中由于监控了多路信号所以在信号调理完毕之后还插入了一个选择电路。
EM78P259N单片机ADC子系统通过三个控制寄存器对ADC进行控制,其中AISR寄存器对PORT5的各引脚进行定义,可通过对该寄存器的定义确定该管脚是I/O脚还是模拟信号输入脚;ADCON寄存器控制着ADC的操作和确定哪位管脚为信号输入;而ADOC则为偏压校准寄存器。其功能组成如图4所示。
图4 ADC功能方框图
由于本例中主要应用了EM78P259N单片机的ADC功能,该MCU其余的控制体系与51系列单没有什么本质的差别,所以在本文中不再赘述。
该采集系统的主流程框图如图5所示。
在这里列出AD转换子程序以及AD转换校正子程序以供参考:
;启动AD转换子程序
;*********************
AD:
MOV A,@1
MOV AISR,A ;选择AD0作为采样口
MOV A,@0X08
MOV ADCON,A ;参考电压为VDD,ADC的时钟预分频1:16,开ADC的电源
BS CHARGE ;发送开始采样信号
CALL AD_CALI_P
BS ADRUN ;开始AD转换
JBC ADRUN ;判断是否转换完成
JMP $-1
MOV A,ADDATA1L ;读取ADC低字节结果值
MOV DATAL,A
MOV A,ADDATA1H ;读取ADC高四位组结果值
MOV DATAH,A
RET
;AD校正子程序部分
;*********************
AD_CALI_P: ;校正ADC位正电压
MOV A,@0X07
MOV COUNT,A
MOV A,@0XF8 ;使能ADC位校正功能
MOV ADOC,A
CAL_LOOP_P:
BS ADRUN
JBC ADRUN
JMP $-1
MOV A,ADDATA1L
XOR A,@0X00
JBC Z ;判断ADC低字节结果值是否为0
JMP CAL_END
CAL_STILL_P:
MOV A,@0X08
SUB ADOC,A
DEC COUNT
JBC Z ;通过对Z位的检测判断COUNT是否减完
JMP AD_CALI_N ;校正ADC位正电压完成后,再校正ADC位负电压
JMP CAL_LOOP_P
AD_CALI_N:
……
CAL_LOOP_N:
BS ADRUN
JBC ADRUN
JMP $-1
MOV A,ADDATA1L
XOR A,@0X00 ;判断ADC低字节结果值是否为0
JBC Z
JMP CAL_END
CAL_STILL_N:
MOV A,@0X08
ADD ADOC,A
DEC COUNT
JBS Z
JMP CAL_LOOP_N
CAL_END:
BC CALI ;除能ADC位校正功能
RET
图5 彩信系统主流程图
由于EM78系列单片机特有的结构特点,我们在利用EM78系列单片机进行信号采集系统的开发时应注意到一些问题。
5.1 关于寄存器组(BANK)的问题:
在EM78P259N中,SRAM共有8位寄存器80个,而其中地址为20H~3FH的寄存器总共有32个,这些寄存器共分为两个组“Bank0”、“Bank1”,它们的使用通过R4(RAM选择寄存器)进行指定[2]。这种结构的寄存器模式,在程序中用到的变量不多(或者数据量不是很大)时,对程序不会有什么影响,我们可以将所涉及的变量分配定义在同一个Bank的寄存器中;但是如果程序所应用变量较多,对变量的操作将会有比较大的问题,有可能会因为程序中寄存器的Bank选择不当导致变量选择错误,以至于程序出错甚至跑飞,尤其是在牵涉到子程序和中断调用时,一定要格外小心。
5.2 关于程序页面(PAGE)的问题:
EM78P259N的片内程序存储器ROM为2K×13位,它采用页(“Page”)分配的原则:就是将2K的程序空间分为2页,每个页容量为1K;分别是Page 0(000H~3FFH)、Page 1(400H~7FFH)[6];而指令系统中两条长距离跳转指令(JMP和CALL),所携带的地址码仅仅有10位,地址空间为210=1K,即指令只能在1K的空间内跳转。当使用JMP指令时,目标地址装入到PC程序指针的低10位;使用CALL指令时,目标地址装入至PC程序指针的低10位,再将PC+1压栈,因此子程序的可定义在同一个程序页的任何地方。PC程序指针(寄存器R2)和堆栈的位数是12位,当执行JMP和CALL等改变PC程序指针的指令时,可以通过修改状态寄存器R3的Bit5(PS0)来选择程序的页面;但是RET(包括RETL、RETI)指令不会改变R3的PS0位,也就是说不管现在设置了程序在哪个页面,当子程序返回后都会返回到子程序被调用的页面。当编写的程序代码量较大(超过1K)时,程序跨页跳转和跨页调用是避免不了的。在使用JMP指令时,一定要知道将要跳到哪个Page;同样在使用CALL指令时,一定要知道要调用的子程序位于哪个Page中。这样在使用JMP指令和CALL指令之前必须要设置R3的PS0位来选择将要跳转或调用程序的存储空间,才能避免程序出错。
由于EM78系列单片机与常用的51系列单片机的结构差异导致应用中会存在一些难以察觉的问题,在实际应用中仔细分析认真推敲程序结构养成一些相适应的编程习惯就能将这些问题的产生消弭于无形。
利用EM78系列单片机开发的数据采集系统具有结构紧凑、功能全面、体积小、性价比高等优点,然而这还只是该型单片机的诸多应用方面的一种,该单片机在PWM领域的应用也占据着一席之地,掌握好该型MCU的开发应用能为小型智能化仪器、设备等的开发提供重要依托。
[1] 祝常红.数据采集与处理技术[M].北京:电子工业出版社,2008:76-87.
[2] EM78P259N/260N 8-Bit Microprocessor with OTP ROM Product Specification[M]. ELAN MICROELECTRONICS CORP,2005,6:13-15.
[3] 赵建瓴.51单片机开发宝典[M].北京:电子工业出版社,2007:761-762.
[4] 邵钟武,柴勤忠,马晓敏.数据采集系统[M].第2版.北京:中国石油大学出版社,2007,2:45-49.
[5] 吴建生.EM78154、X56、X57系列8位单片机原理及应用[M].福州:福建新源电子技术研究所,1998,3:5-7.
[6] 王永生,全书海.EM78系列单片机实战编程技巧[J].单片机与镶入式系统Microcont rollers & Embedded Systems,2005,3:57-59.
[7] 李兴山,杨继红.多通道数据采集装置的研制[J].内江科技,2006(7):36.
[8] 程学庆,高品贤.ISA总线多路数据采集卡研制[J].使用测试技术,2002(11):41-43.
[9] 周凯,李刚.高速采样保持放大器AD781[J].国外电子元器件,2001(10):51-54.
[10] 黄勇.EM78/447B单片机应用研究和制作[M].北京:北京航空航天大学出版社,2002:7,10.
[11] 李学海.EM78单片机实用教程——提高篇[M].北京:电子工业出版社,2003:78,90.
A Small Type of Data Collecting System Based on a Single Chip EM78P259N
HUANG Zanneng
(No. 92823 Troops of PLA, Sanya 572021)
The single chip of EM78 has a compact structure and strong function. Especially, the circuits integrated inside the single chip, like ADC and MUX, provide an excellent flat for structuring a small type of data collecting system. Some type of test and control system is presented, and the application of the single chip EM78P259N on data collecting is analyzed, and related notice is put forward.
single chip, EM78, data collecting system, ELAN
2014年6月13日,
2014年7月27日
黄赞能,男,高级工程师,研究方向:舰载雷达装备技术保障。
TP274
10.3969/j.issn1672-9730.2014.12.034