摘要:设计了一种单总线信号分离电路,可将单总线上的双向信号根据发送端的不同而分离出来,采用嵌入式ARM系统研制了单总线时序分析仪,对分离电路输出的各个发送端信号进行独立采集与分析,实现了对单总线接口信号的时序与数据分析。
1 引言
单总线是一种新型的、一线式总线接口技术,使用一根线就可以完成传统接口需要许多接线才能完成的诸如控制、数据、地址等总线数据的通讯;具有接口简单、硬件开销少、便于扩展和维护等优点。因其所具有的优点,许多厂家纷纷推出了一线接口的器件,如美国达拉斯(DALLAS)半导体公司应用于测控领域的DS2401硅序列芯片、DS18B20温度传感器[1, 2]、DS2406可寻址开关[3]、应用于微型因特网接口TINI(TinyInternet Interfaces)的DS80C400[4, 5]等,并获得了广泛应用。
通常,单总线协议采用主从方式进行通信,由主控器件发起控制,控制信号和读写信号通过高低电平的时间宽度来区分,因此,单总线协议对时序控制有严格的要求[5, 6]。例如:从机要发送数据时,主机将单总线从高电平拉至低电平在1us以上,然后主机释放该总线,此时主机产生读时间段,从器件在读时间段下降沿到来之后的15us内发送一位数据信息,主机在此时间内读取数据[1]。在检测和维修此类单总线接口的电子仪器系统,传统采用示波器、逻辑分析仪等工具只能观察单总线上的波形,无法确定波形是来自主控设备还是从设备,更无法准确获得在单总线上通信传输的数据。因此,研制一种嵌入式单总线时序分析系统,能将总线上传输的信号独立分离出发送端和接受端、完成信号时间周期采集,并通过串口输出整个通信过程中主从双方的输出信号交替过程及信号周期,从而实现对单总线时序进行分析调试的功能,无疑具有现实意义。
2 单总线信号分离电路
信号分离电路既能够将总线上来自不同器件的信号区分出发送端和接受端,又不能破坏原有正常的总线时序,影响器件之间的通信。
2·1 电路原理分析
图1所示电路为单总线信号分离电路的原理图,图中A、B分别连接单总线的两端,C、D分别为A、B点信号的提取输出端,Q1、Q2为NPN三极管,R1、R2、R3、R4为上拉电阻。通过该电路,将A、B的输入信号分别从C、D输出,供后续检测电路检测。单总线属于单工通信方式,即在同一时刻,只有一端处于发送状态。现假设信号从A点输入,则B点处于接收状态。电路分析如下:
i·当A点为高电平时,Vb1由R2上拉至高电平,此时:
所以Q2处于截止状态,D仍为高电平。通过上述分析,可得到以下结论: B点、C点的变化和A点变化相同,A点和D点的变化无关。同理,反之当信号从B点输入,A点为输出时,可得出相同的结论:A点、D点的变化和B点变化相同,C点和B点的变化无关。
综上所述,图1所示单总线信号分离电路可将单总线上A点输入的信号从B、C两点输出, B点输入的信号可从A、D点输出,即可保持A、B两端原有的通信。后续电路通过对C、D两点输出的信号进行检测,可以得知单总线上A、B两端的通信过程。
2·2 仿真与结论
采用Multisim9软件对图1所示电路图进行实验仿真。其中,R1、R2、R3、R4的阻值为4·7K欧姆,Q1、Q2采用2N2102三极管。
图2为A点输入5V 1KHz的方波时,A、B、C、D各点的波形图,图2中B点、C点的波形和A点保持同步,C点的波形幅值和A点的波形幅值相同,B点的幅值为4·3V,比A点小0·7V,这是由于三极管导通后be极之间的压降造成的。单总线上传输的是数字信号[7], 4·3V已经远远超过了TTL的高电平门限,对后续甄别电路造不会有影响。
图3为B点输入5V 1KHz的方波时,A、B、C、D各点的波形图,图3中A点、D点的波形和B点保持同步,D点的波形幅值和B点的波形幅值相同,A点的幅值为4·3V,比B点小0·7V,这是由于三极管导通后be极之间的压降造成的。这个压降对后续甄别电路造不会有影响。
通过图2、图3的实验仿真结果,验证了2·1中的结论:单总线信号分离电路可以将单总线上A点输入的信号从B点、C点输出, B点输入的信号从A点、D点输出,且对原有时间延迟很小,即没有破坏单总线通信的时序要求,可保持A、B两端原有的通信。
3 单总线时序分析仪的设计
采用嵌入式ARM系统,和图1中所示的单总线信号分离电路,就可研制出一种单总线时序分析仪,如图4所示,图中虚线表示原有单总线接口的连接方式。图中ARM微控制器采用的是LPC2114,该微控制器是PHILIPS公司生产的基于ARM7TDMI-S内核的ARM芯片,主频可达60MHz,且为单指令周期,内部自带2个串口, 2个32位定时器,带4路捕获功能[8]。
单总线时序周期一般为微秒级,采用LPC2114可提高周期测量的精确度。另外,通LPC2114的捕获功能,可方便实现对周期信号的时间测量。将信号分离电路的C、D输出分别接到LPC2114的定时器0和定时器1的捕获输入引脚,并开启LPC2114的捕获功能,当捕获引脚上信号发生跳变时,CPU会将此时的定时器的计数值保存到内部的寄存器并产生中断,软件中通过将两次跳变时刻的计数值相减,可等到跳变周期的时间宽度,并将这些信息从串口输出,供调试人员查看或高端软件分析时序。
定时器0和定时器1初始化捕获功能的代码如下:
//开启P0·4, P0·10的捕获功能,其中P0·4连接到定时器0
的捕获功能, P0·10连接到定时器1的捕获功能
PINSEL0 = (PINSEL0&0xFFCFFCFF) |0x300300;
//设置定时器0和定时器1的分频值
T0PR = 0;
T1PR = 0;
//开启定时器0和定时器1的捕捉功能,并在捕获时产生
中断
T0CCR = 0x30;
T1CCR = 0x06;
//复位并启动定时器0和定时器1
T0TCR = 0x03;
T1TCR = 0x03;
当捕获管脚上的电平发生跳变时,ARM产生捕获中断,捕获中断的程序处理流程如图5所示。
4 应用实例
使用本文研制的单总线分析仪,对某单总线设备的主机和温度传感器DS18B20的通信时序进行分析。单总线时序分离电路的A端接主机,B端接DS18B20。图6为使用示波器探测到的总线上的信号波形,表1为经过单总线时序分析仪后,串口输出的C、D两点捕获到的波形周期数据。
5 结束语
设计的单总线信号分离电路,电路简单,能有效地将单总线上通信的两端的信号提取并区分出来,对原有通信的延时和信号幅度影响极小,能够保持原有的通信时序。基于嵌入式ARM系统研制的单总线时序分析仪,通过串口输出单总线通信的时序交替过程及时序周期,为单总线软件设计的时序调试提供了方便,本研究也可应用在其他单总线的时序分析中.
参考文献
1 马峻,林燕雄,李长俊等·单总线技术在测控领域的应用·仪器仪表学报, 2001, 22(S4) : 254~256
2 王晓远,陈益广,冯丽·具有远程故障诊断调试功能的智能温度控制系统·仪器仪表学报, 2002, 23(S5): 167~170
3 包宇,王连明,邢雪峰·基于TINI平台的嵌入式互联网接入技术研究·电子器件, 2007, 30(2) : 683~686
4 王传军,范玉峰,陈东·基于TINI系统的网络气象站·天文研究与技术, 2007, 4(3) : 288~295
5 李国柱·单总线技术及其应用研究·西安文理学院学报:自然科学版, 2006, 9(2): 62~65
6 盛文利·C语言开发单线器件的时序问题·东北电力学院学报, 2004, 24(4) : 82~85
7 陈志传·单总线技术应用经验交流·广东公安科技, 2006(3) : 81~84
8 LPC2114 DataSheet[CDROM] NXP Semiconductors·
作者简介
陈聪慧,男, 1984年11月出生,本科学历,现为福建师范大学物理与光电信息科技学院2006级光学工程专业硕士研究生,主要研究方向为测控与智能系统。