瞿安连
2003年全国大学生电子设计竞赛D题为《简易逻辑分析仪》,任务是:设计并制作一个8路数字信号发生器与简易逻辑分析仪。湖北赛区共有50个队参加,约占赛区参赛队总数的五分之一强,说明该题受到参赛同学的欢迎。作品中有80%以上可正常通电测试,比例大大高于上届《简易数字存储示波器》一题(两题有某些相似之处)。该题主要反映学生对数字电路和单片机方面的应用和设计能力。题目要求的结构框图见图1。
1.方案评述
按题目基本要求,制作分为数字信号发生器和简易逻辑分析仪两部分。
(1)制作数字信号发生器 约90%的通电测试参赛队都仅用一片单片机实现了8位数字信号发生器的功能,用开关进行循环字的预置,以软件实现循环移位。这是一个比较好的方案,因为题目要求序列时钟频率仅为100Hz,且负载能力要求不高,用价格极为低廉的8051系列单片机完成这项功能已绰绰有余。其余的队则是用CPLD或中规模集成的移位寄存器实现,但效果均不如单片机方案灵活方便,性价比较低。
(2)制作简易逻辑分析仪
微控制器系统 100%的通电测试参赛队均采用单片机实现对系统的控制功能,且绝大部分采用8051系列的单片机,有少数使用性能更加完善的凌阳单片机系统。从功能实现上看没有显著差别。
8位输入电路 题目要求:8位输入电路的输入阻抗大于50kΩ,其逻辑信号门限电压可在0.25~4V范围内按16级变化,以适应各种输入信号的逻辑电平。
绝大部分参赛队采用8个比较器电路同时对8路输入信号电平分别进行比较,以确定各路输入逻辑电平的高低。这种电路输入电阻大于50kΩ一般不成问题。作为逻辑信号门限电压比较的参考电压,则方案有多种。其中半数以上使用8bit数模转换器以程控方法进行设定;也有用电阻16级分压,以模拟开关程控选通或波段开关选通实现的。显然使用数模转换器电路更简单一些。有一个队使用带刻度的10圈电位器连续调整,与题目要求的“16级变化”有些偏差。上述方案在本质上没有太大的差别和特色。
参赛队中有一种方案对于实现本题要求(不是真正的逻辑分析仪)是具有特色的。他们采用一个8选1模拟开关和一个8bit模数转换器,与时钟信号同步,分别对8路逻辑信号进行模数转换,将与逻辑电平成比例关系的数字量输入单片机,然后在程序中用数值比较的方法确定各路逻辑电平的高低。该方案可以使电路得到简化,并且可根据要求,分别对各个通道置入相应的逻辑信号门限电压值,对不同逻辑电平的各通道信号分别进行比较,确定其逻辑值。
控制电路和RAM 由于微控制器系统中一般已包含RAM,根据题目要求,“每通道的存储深度为20bit”,如果每个时钟周期只采样一组数据,而不采用高速数据采集的方案,则数据存储量不大,所要求的数据处理速度也不高,所以大多数参赛队都是将8位输入电路所确定的逻辑信号直接输入单片机系统,没有另外设计结构框图中所要求的控制电路和RAM。
实际上,真正的逻辑分析仪经常以远高于信号变化的频率进行高密度采样,以发现逻辑信号中的延迟和竞争冒险现象(俗称“毛刺”),这样就会产生大量的数据,需要大容量的RAM及控制电路。
字触发功能 由于题目要求“序列时钟频率为100Hz”,字采集的间隔时间有10ms,处理器在此时间内至少可执行数千条指令,大多数参赛队的字触发功能都是用软件编程方法实现的,对实现本题的要求已足够了。少数队采用硬件逻辑比较方案,以FPGA实现,对于本题来说似无必要,而要实现序列时钟频率更高的逻辑分析仪,硬件逻辑比较才是好方案。
波形与逻辑状态显示 题目的基本要求:“能利用模拟示波器清晰稳定地显示所采集到的8路信号波形,并显示触发点位置”,而题目发挥部分要求:“能在示波器上显示可移动的时间标志线”。
有半数以上的参赛队采用示波器的X-Y显示模式,用单片机控制两个数模转换器分别产生模拟信号送入模拟示波器的X轴和Y轴输入端,并在相应时间产生同步的Z轴信号以控制显示亮度,从而得到稳定清晰的逻辑波形以及触发点、时间标志线等。应当说这已是最佳方案。
有部分队采用外触发的X轴扫描模式,可省去一路数模转换通道,触发信号和Z轴亮度信号则由单片机同步产生。该方案虽然也可以得到稳定显示的波形,但触发点和时间标志只能采用在波形上添加窄脉冲或亮点的方式实现显示,有些队则增加一条扫描线来标志。这种方案的显示质量明显比X-Y模式低。此外,没有用Y轴方向的直线或虚线来显示“时间标志线”,也与题目要求略有距离。
时间标志线所对应时刻的8路输入信号逻辑状态,有些采用8个发光二极管显示,有些则用两位16进制数显示,二者无本质差别,前者似乎显示更清楚一些。
2. 问题
(1)由于绝大多数参赛者未使用过,甚至未见过逻辑分析仪,事先对它的工作原理和性能指标知之甚少,因此出现一些理解上的错误。例如对“三级状态字”、 “触发点位置”、“触发位置可调”、“时间标志线”以及逻辑分析仪的输入“跳接线”等,都有一些参赛队由于理解有误而不能做出完全正确的设计。该题的发挥也因此受到局限,例如很少有人考虑以高速采样方式采集数据线上的逻辑状态,以测量逻辑电路的延迟特性及发现被测逻辑电路中的竞争冒险现象和其它瞬时逻辑错误。
(2)在测评中,对输入电路的门限电压测试有很多作品不完全成功。很多参赛队使用LM324或TL084这样的运算放大器作输入比较器,为了与逻辑电路接口,这些运放往往使用+5V单电源供电,因为受到共模信号输入范围的限制,在逻辑信号门限电压较高的情况下,电路输出常常没有响应,TL084对于低于1V的门限电压也常常失去比较能力。产生这种问题的原因也许是现行教材引起的,目前大多数教材都以“运放的非线性应用”引出比较器,从而造成一个错觉,以为运放可作为比较器使用。实际上运放和比较器是两种集成器件,它们的技术指标有很大差别,用运放作比较器是不妥的,原因如下:其一是运放在开环状态下带宽很窄,输出对输入信号的响应速度很慢,且输出脉冲电压的上升、下降沿时间很长,而集成比较器则相反,其技术指标中往往列出输出对输入信号的响应时间,以及输出电压上升、下降沿的最大时间;第二,运放通常工作于线性闭环(深度负反馈)条件下,同相输入端和反相输入端之间的信号电压极小,在集成电路设计时对输入电路的过载能力没有留出过多的余量,因而运放做比较器使用时,若未加输入保护电路,极易造成输入电路损伤,而集成比较器的输入电路远较运放“结实”,从而适合工作在开环和输入电压过驱动状态下;第三是运放不易与逻辑电路接口,TL084之类的运放尤为突出,它输出的低电平电压有时超过TTL电路标准所允许的低电平输入电压最大值,而集成比较器一般都考虑了与逻辑电路的接口问题。如果使用+5V单电源供电,正确的选择应当是采用具有Rail-to-Rail输入特性的集成比较器。如果采用LM339这样老式的比较器,则电源电压应高于+5V才能使输入共模信号电压范围(比较电压范围)高于4V,可靠达到题目所要求的指标。这时,LM339集电极开路输出电路的上拉电阻应接在逻辑电路电源的+5V上。
(3)在湖北赛区,本题目的基本模块设计大多雷同,缺乏能使人兴奋的创新和特色,从而有很多参赛队的作品测试成绩相近。题目本身的特点决定了其测评项目大多是功能的有无,而不是作品达到指标的水平,这也给测试成绩的拉开造成困难。
(4)有些作品设计过于“豪华”,使用多片高档单片机、大容量双口RAM、大屏幕液晶显示器、大容量FPGA等硬件构成一个庞大系统。有的作品竟需要6路稳压电源供电,而又有些作品外加语音提示,红外遥控等功能,而逻辑分析仪本身应具备的特性和功能却未见提高。更令人奇怪的是,有些作品中出现一些微处理机外围器件闲置不用的现象。如此设计背离了工程设计的基本原则,脱离了实际。纵观历次竞赛,作品的“豪华”程度有增无减,这也使参赛学校的竞赛成本大幅度提高,经济上不堪重负。希望今后竞赛中能适当考虑作品的性能/价格比,将其作为评审的指标之一。
上述测评分析,仅是印象较深的部分内容,没有相关作品原稿作参考,并且是从个人角度观察得出的意见,难免偏颇,不妥之处敬请读者提出。笔者的email地址为:alqu@mail.hust.edu,热切期待着与同行们的交流。