本帖最后由 yeqiqi94100 于 2013-8-12 20:34 编辑
2、课题所达到的功能目标、技术指标 (1)能完成对A 通道单极性信号(高电平约4V、低电平接近0V)、频率约1kHz 信号 的采集、存储与连续回放。要求系统输入阻抗不小于10 kΩ,输出阻抗不大于1kΩ; (2)采集、回放时能测量并显示信号的高电平、低电平和信号的周期。原信号与回放 信号电平之差的绝对值≤50 mV,周期之差的绝对值≤5%。 3、课题总体设计方案,比较几个备选方案,确定最终方案 (1)采样方式 方案一:实时采样。实时采样是在信号存在期间对其采样。根据采样定理,采用速率必须高于信号最高频率分量的两倍。对于周期的正弦信号,一个周期内应该大于两个采样点。为了不失真的恢复原被测信号,通常一个周期内就需要采样八个点以上。 方案二:等效时间采样法。采用中高速模数转换器,对于频率较高的周期性信号采用等效时间采样的方法,即对每个周期仅采样一个点,经过若干个周期后就可对信号各个部分采样一遍。而这些点可以借助步进延迟方法均匀地分布于信号波形的不同位置。其中步进延迟是每一次采样比上一次样点的位置延迟△t时间。只要精确控制从触发获得采样的时间延迟,就能够准确地恢复出原始信号。 等效时间采样虽然可以对很高频率的信号进行采样,可是步进延迟的采样技术与电路较为复杂。再者,它只限于处理周期信号,而且对单次触发采样无能为力。实时采样可以实现整个频段的全速采样,因此本设计采用方案一。 (2)A/D、D/A转换方式 方案一:采用ADC0809的8位单断模拟输入信号中的一个进行A/D转换,允许8路模拟量分时输入,共用一个A/D转换器进行转换,可以进行多数据采集。而地址锁存与译码电路完成对A、B、C三个地址位进行锁存和译码,转换结果通过三态输出锁存器存放、输出。 方案二:PCF8591是具有IIC接口,有AIN0~AIN3四个模拟输入通道和一个模拟输出通道,最多可以有8片8591连接到IIC总线。通过时钟线SCL和数据线SDA与单片机之间的数据进行传输,故我们选择此方案。 (3)触发方式选择 要使屏幕上显示稳定的波形,则需将被测信号本身或者与被测信号有一定时间关系的触发信号加到触发电路。触发源选择确定触发信号由何处供给。通常有三种触发源:内触发(INT)、电源触发(LINE)、外触发EXT)。题目要求选择内触发,即使用被测信号作为触发信号。 方案一:采用数字触发方式。对波形信号进行采集,将采集到的波形数据和触发电平(可由键盘设置)进行比较,找到波形在上升过程中大于或等于该触发电平的点,即得到触发,此时开始对波形进行存储。因为本来就需要对波形信号进行采集,使用这种方法无需要增加额外的硬件电路,实现方便。但是,对波形每个周期只采集有限个点,不可能每次都能采集到等于触发电平的点(这时不得不以大于该电平的值为触发电平),从而使触发位置不稳定,连续触发时输出波形会有抖动现象。 方案二:采用模拟触发方式。通过比较器LM358将被测波形信号和触发电平进行比较,大于触发电平时输出为高电平,小于触发电平时则输出低电平,即可得到信号被整形后的脉冲序列,再在该脉冲序列的上升沿开始存储波形即实现了触发存储的功能。这种触发方式稳定,故我们采用了这种方案 三、硬件设计说明 1、本系统使用的芯片有:STC89C52、AT24C04、PCF8591。 (1)核心控制芯片STC89C52 STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。 接口下图所示
主要芯片I/O口分配: 液晶 RS、P1.0,RW、P1.1,EN、P1.2 AT24C04 SCL、P2.2,SDA、P2.3 PCF8591 SCL、P2.2,SDA、P2.3 (2)程序存储芯片AT24C04 AT24C04是一个4K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。 管脚与管脚功能如下图: (3)AD/DA转换芯片PCF8591 PCF8591是一个单片集成、单独供电、低功耗、8-bitCMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。 管脚与管脚功能如下图:
AIN0~AIN3:模拟信号输入端。 A0~A2:引脚地址端。 VDD、VSS:电源端。(2.5~6V) SDA、SCL:I2C 总线的数据线时钟线。 OSC:外部时钟输入端,内部时钟输出端。 EXT:内部、外部时钟选择线,使用内部时钟时 EXT 接地。 AGND:模拟信号地。 AOUT:D/A 转换输出端。 VREF:基准电源端 2、硬件总体设计方案 (1)硬件设计目标:最终实现波形的采集、存储、回放。 (2)硬件模块划分:AT89S51主控制模块、PCF8591模块、24C02模块。 ①主控芯片 AT89S51带8KB闪存,工作电压5V。 ②采集、回放电路 图3-1 PCF8591是具有I2C总线接口的A/D转换芯片。在与CPU的信息传输过程中仅靠时钟线SCL和数据线SDA就可以实现,8位A/D及D/A转换器,有4路A/D转换输入,1路D/A模拟输出。AIN0~AIN3:模拟信号输入端。
A0~A3:引脚地址端。VDD、VSS:电源端(2.5~6V)
SDA、SCL:I2C总线的数据线、时钟线; OSC:外部时钟输入端,内部时钟输出端;
EXT:内部、外部时钟选择线,使用内部时钟时EXT接地AGND:模拟信号地;AOUT:D/A转换输出端; VREF:基准电源端。 AOUT为D/A 转换输出端,AIN0~AIN3为A/D的模拟信号输入端,输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。
图3-1采集回放电路图 ③控制按键 控制铵键用于信号确认。按键分别接AT89S51的P1.5,如图3-2。 图3-2按键控制图 ④显示模块 利用LCD1602,数据D0~D7接 AT89S51的P0口,RS\RW\E分别接位接AT89S51的P2.0、P2.1、P2.2接口,如图3-3。
图3-3LCD液晶显示图 ⑤转换电路 利用LM358将正弦波、三角波转换成矩形波,将输出的波形通过PNP三极管,CPU输出高电平时三极管关断;CPU输出低电平时,三极管导通,从而输出波形。 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image016.jpg 图3-4转换电路图 四、软件设计说明 1、软件总体设计方案 (1)软件设计目标 最终能实现同时采集两路周期信号波形,要求系统断电恢复后,能连续回放已采集的信号,显示在LCD上。 1、按P1.5的按键,依次进入回放已采集的信号状态。 2、按下回放键后,该系统将1ms的采样波形进行循环回放(重现); 3、在采集时可改变幅值,并且采集到的数据也会同时在回放的时候变化; 4、在回放时,若按下回放键,将停止波形的回放;若按下采集键,将终止当前波形的回放,并采集新的波形。 (2)软件功能模块划分 ①主程序 主程序循环调用LCD显示子程序、PCF8591数模与模数转换、IIC24C04存储程序,当端口上电时,转入相应功能程序。如图4-2所示: file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image018.jpg 图4-2主程序流程图 ②LCD显示子程序 LCD液晶显示数据存放在内存单元5EH~6CH中。其中5EH-66H存放LCD上排显示,67H~6CH存放LCD下排显示。从P0口输出数据,由P2.0~P2.1对LCD进行数据操作选择,就能显示该地址单元的数据值,流程图如图4-3所 图4-3 LCD显示程序流程图③PCF8591数模与模数转换程序 PCF8591采用典型的I2C总线接口器件寻址方法,即总线地址由器件地址、引脚地址和方向位组成,A/D器件地址为1001,引脚地址为A2A1A0,其值由用户选择,因此I2C系统中最多可接23=8个具有I2C总线接口的A/D器件。地址的最后一位为方向位R/ ,当主控器对A/D器件进行读操作时为1,进行写操作时为0。总线操作时,由器件地址、引脚地址和方向位组成的从地址为主控器发送的第一字节。 在进行数据操作时,首先是主控器发出起始信号,然后发出读寻址字节,被控器做出应答后,主控器从被控器读出第一个数据字节,主控器发出应答,主控器从被控器读出第二个数据字节,主控器发出应答…一直到主控器从被控器中读出第n个数据字节,主控器发出非应答信号,最后主控器发出停止信号,流程图见图4-4 图4-4 PCF8591模数与数模转换程序流程图 ⑤I2C24C02存储功能程序 I2C24C02是4KB的EEPROM,它是一片I2C总线式串行器件,有两跟信号线,一根是双向的数据线SDA,另一根是时钟线SCL,A0,A1,A2为器件地址线,WP为写保护引脚,符合I2C总线协议。流程图如图4-4所示。
图4-4 I2C24C02流程图 五、硬件调试说明 1、硬件性能测试 (1)当调节LCD1602的1与3脚的电压时,发现很麻烦。根据不同型号的液晶屏,电压相应不一样。 因此直接把1、3脚连接,这样显示正常。要是屏幕过亮说明电压过大,所以加一个503的微调电阻即可。 (2)烧入程序后,液晶显示屏没有显示。首先对整个电路的连线检查,再次用万用表检查电路是否有短路的现象,后发现是电路板短路DS1302芯片烧坏了,再换个问题解决了。 (3)在PCB板中,包含多种类型的电路,为了避免各部分电路中信号相互耦合而产生干扰,对不同类型的电路部分进行分离布局是PCB板设计的一个基本原则。各部分之间不仅应保持相当距离,还要分开走线,电源系统的布线包括电源线VDD和地线VSS的布线是系统抗干扰的一个重要部分。VDD和VSS应尽可能扩大面积,以防止因电磁能量较强而产生电磁干扰能量的发射,这也是保证高频信号到地之间具有低阴抗的措施。 2、软件性能测试 (1)本系统处理的正弦波信号频率范围限定在10Hz~10kHz,三角波信号频率范围限定在10Hz ~2kHz,方波信号频率范围限定在10Hz ~1kHz,在进行波形采集时要把三角波和正弦波转换成矩形波。 (2)采集、回放时原信号与回放信号电平之差的绝对值≤50 mV,周期之差的绝对值≤5%。 (3)输入阻抗是高好,输出阻抗是低好。 (4)系统功耗≤50mW,尽量降低系统功耗,系统内不允许使用电池。 (5)采集、回放时显示的周期和幅度应是信号的实际测量值,采用十进制数字显示,周期以“ms”为单位,幅度以“mV”为单位。 |