嵌入式系统应用设计训练.ppt_第1页
嵌入式系统应用设计训练.ppt_第2页
嵌入式系统应用设计训练.ppt_第3页
嵌入式系统应用设计训练.ppt_第4页
嵌入式系统应用设计训练.ppt_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第13章 嵌入式应用系统设计训练 本课程设计要求同学将单片机的知识与所学的其他 知识,进行综合运用,应用到具体的产品开发设计中,以加 强对所学知识的进一步理解与掌握,锻炼和提高对知识 综合运用的能力及分析问题和解决问题的能力。 题目1:数据采集器的开发设计 题目2:任意信号发生器的开发设计 题目3:交通控制器的设计 在以上3个设计题目中,每个同学任选其一进行设计 。设计内容包括硬件设计与软件设计。硬件设计要有设 计说明(即功能实现;地址译码与分配;接口关系等)。可 按功能模块设计成分图;软件设计要有程序流程框图(主 程序、子程序独立的流程图),及源程序清单(要有必 要的注释,注释不少于50)。 一 数据采集器的设计 技术指标与要求 1.1 功能与技术指标 模拟输入通道4个,并可通过按键任意选择通道数及通道, 模拟信号输入范围0V5V; 采样频率设4档:1KHz;2KHz;4KHz;8KHz (所选通道一样) 采样方式两种: 连续采样(由按键控制开始与停止); 定长采样(100点,1000点,10K). 与下端机以中断方式用8位并行接口进行数据传输。 1.2 设计要求 以MCS-51单片机为控制主芯片并设计必要的外围电路; A/D电路建议采用AD7864芯片进行设计; 要有合理的人机接口电路,实现对采集器的操作控制。 努力作到设计的产品:能用、好用、管用、耐用。 2 设计的一般方法及步骤: 总体设计:根据设计要求建立系统总体框架。 即 根据本系统的功能与指标要求,规划出所需要的硬 件功能模块,和软件总体思路与结构。并根据各模 块的要求与特点,确定出各功能模块之间的接口关 系与要求,进而对总体设计进行修改与调整。 功能模块设计:根据各功能模块的具体要求,选择 合适的芯片并进行功能实现的设计; 接口设计:根据各模块的输入输出及控制需求,列 出该模块需要的各种信号,并设计相应的接口; 软件设计:根据总体设计中规划的软件结构进行软 件的程序设计(主程序及各子程序等的设计)。 综合优化:将各功能模块及接口所需信号等进行总 体的综合与优化(硬件模块及之间的优化、软件与 硬件的综合优化等),完成最终的整体设计。 3 硬件设计(提示与讨论) 3.1总体设计: 根据本数据采集器的功能与技术指标要求,可将硬件分为 以下几个功能模块与部分(同学可以自己重新分配模块): 主控制器模块:单片机系统及外部总线、复位、时钟电路等; 数据采集模块:A/D芯片及其外围电路; 采样方式选择模块:100点、1K点、10K点、连续采样任选电路; 采样频率选择模块:500Hz/1KHz/5KHz/10KHz的选择电路; 采样通道选择模块:通道14的任意组合选择电路; 数据缓存模块: 数据缓存RAM及其接口电路; 操控与参数输入模块:选择参数的确认及采样过程的控制; 译码模块:系统地址分配与译码电路; 电源模块:采集器的电源输入、电源开关、电源指示等; 机箱与面板 :可靠耐用、操控方便、美观合理。 3.2 功能模块设计与讨论 3.2.1 主控制模块 1 组成:89C51+时钟电路复位电路外部三总线 由于89C51片内有4KB的EEPROM, 可以满 足 本系统程序存贮器的需求,故该系统不需扩展片外程 序 存贮器。若设计者选用80C31或其他原因也可外扩程 序 存贮器。 由于该数据采集器有外部RAM、A/D、操作控 制 电路,因此必须引出外部三总线。 该系统选择片内12MHZ时钟,外加石英晶体; 采用上电复位与按键复位相结合的方式; 该模块的设计参考电路如下图所示。 3.2.2 信号转换模块 该模块以A/D芯片为核心,加以合理的外围电 路 组成。A/D芯片选用AD公司的12位4通道AD转换 器 件AD7864。 该器件有4个差分模拟输入通道,并可用硬件 或 软件的方式任意选择通道; 具有片内参考电压和时钟,也可选用外部时 钟 信号。 片内具有8个字节的数据缓存FIFO,用于存放4 个通道的转换数据,并以紧凑方式按通道号的大小 依 次存入FIFO。 AD7864的封装及引脚 AD7864的组成逻辑框图 AD7864引脚简介 VIN1A,VIN1B: 通道1的模拟信号输入引脚; VIN2A,VIN2B: 通道1的模拟信号输入引脚; VIN3A,VIN3B: 通道1的模拟信号输入引脚; VIN4A,VIN4B: 通道1的模拟信号输入引脚; DB0DB11: 12位并行数据双向口,其既作为12位转换数据输 出并口;又可作为软件设置通道的数据输入并口。 /CS: 片选信号输入引脚; /RD: 数据读信号输入引脚; /WR: 写数据信号输入引脚; H/S: 通道选择方式引脚,0:硬件方式选择;1:软件方式选择 SL1SL4: 硬件选择通道引脚;0:不选;1:被选; /CONVST: 转换启动信号输入引脚,上升沿启动; BUSY: 正在转换标志,高电平有效; /EOC: 转换结束标志,低电平有效; FSTDATA: 所选通道的首通道数据标志(1)信号输出引脚; INT/EXT: 时钟方式选择(内/外0/1)引脚; CLKIN: 外部时钟信号输入引脚; /STBY:省电模式控制引脚,正常工作时该引脚输入高电平(正 常工作电流为24MA);当不用信号转换时,设置该引 脚 为低使之进入省电模式(5微安) VREF:片内基准参考电压输出(2.5V); VREFGND:片内基准参考电压输出地; AVDD: 片内模拟电路电源输入引脚; AGND(3个引脚):片内模拟电路电源地; DVDD: 片内数字电路电源输入引脚; DGND:片内数字电路电源输入地; 设计思路与讨论 1、模拟输入通道的选择既可以用软件的方法选择,也可 用硬件的方法选择。但二者都必须用操作按键进行选择 操作,并对所选的通道进行指示;另外还要将选择的结 果通知单片机,以确定几个通道工作等。经综合考虑, 用硬件设定通道比较适合本方案。故H/S=0。 若用软件方式选择通道,则/WR引脚必须与单片机 的/WR信号连接。另外AD7864的SL0SL3引脚可以不 接, 也可以接地,但关键是H/S引脚必须接高电平。 2、转换时钟采样片内时钟;故INT/EXT=0 3、用采样频率脉冲信号接启动引脚:/CONVST,以达到 控制采样频率的目的。 4、可用转换结束标志/EOC作为单片机的外部中断输入 , 但 /EOC在每个通道转换结束都会产生,故本设计不采用 这种方式。若要用/EOC作中断,则必须注意读AD7864 片内 FIFO与/EOC的配合。 5、BUSY信号是AD7864正在转换的标志信号,即当 启动转换时BUSY=1为高电平,所选的通道全部转 换完后马上变成低电平,故用BUSY信号的反相作 为单片机INT0的输入作为读数据的中断请求。 6、可用并口的某一线控制/STBY引脚,A/D转换时使 其为高 电平,不转换时为低电平进入省电模式。 7、可利用FSTDATA信号作为首通道数据的标志,接 入时可将其接到数据字的D15或D14. 8、 3.2.3 采样方式选择模块 该采集器有两种采样模式,4种工作方式。即定长采样模 式 和连续采样模式。定长采样按采样长度分3种采样工作方式: 100点、1000点和10000点。 该电路要能实现方式选择,并满足以下4个要求: 1. 开机以后应确定一默认的采样工作方式; 2. 要求的4种采样工作方式通过按键可任意选择其一; 3. 所选择的工作方式在人机界面上要有相应的指示; 4. 所选择的工作方式必须告知CPU,使程序能够根据方 式 参数进行相应的数据采样过程控制。 对于定长采样方式,按“开始”键后,程序按设置的有关参 数 开始采样,采够选择的点数,由程序控制停止采样; 对于连续采样方式,按“开始”键后,则根据设置的参数开 始 采样,只有当按“停止”键时,才结束采样。 根据以上要求,设计的参考电路如下图所示: 3.2.4 采样频率选择模块 本方案的设计思路:AD7864模数转换芯片有 一 个转换启动脉冲信号输入引脚:/CONVST,该引脚 来一个脉冲则启动一次转换。因此将符合采样频 率 的脉冲信号送入/CONVST引脚,即可控制采样频 率。 功能实现:由电路产生4个符合采样频率的脉 冲 信号,并送入4选1器件74HC153的4个输入端; 将 2位频率选择码接到74HC153的2个输出控制端, 频率选择指示是将2位频率选择码接入译码器 74HC139的2个输入端,用其输出控制4个指示灯 。 3.2.5 采样通道选择模块 AD7864片内具有4个模拟输入通道,既可用硬件的方式任 意 选择通道,也可用软件方法任意选择。本选择方案的设计要满 足5个要求: 可由操作者控制通道的选择操作; 可在4个通道中任意选择; 选择的通道必须在界面上指示或显示; 选择的结果必须通知单片机; 采集器上电后必须有一默认状态。 试比较这2种选择方式: 1、用软件方式选择: 5种要求的实现: 通道选择的操作实现:可设计4个开关或按键分别对4个 通道进行选择; 4个通道的任意选择:对于用软件选择通道是非常方便 的,只需通过数据总线给AD7864写入4位状态信号即可。其中 的 D0D3分别对应通道03,只要将需要工作的通道对应的位写1 而步工作的通道对应位取0即可完成通道的选择。当通道的工作 与否取决与操作者的设置选择。 所选通道的指示:通过P1并口或扩展一个4位并口控制4 个指示灯; 通道选择结果通知单片机:通过并口将选择的状态码读 入 单片机; 采集器开机后进入一确定的状态(默认通道选择):将 默 认的通道选择码通过的4位并口指示即可。 综上所述,软件选择方案需要4项内容:4个选择操作开 关 或按键;4个指示灯及对应的4位并口;4位或2位读入选择状态 的并口;相应的操作控制指令程序。 2、硬件选择通道方案: 5种要求的满足与实现: 通道选择的操作:需4个状态开关或按键(与软件相同) ; 所选通道指示:用4个开关状态信号分别控制4个指示灯; 选择结果通知单片机:用一4位并口将4个开关状态信号读 入单片机; 通道的选择:将4个开关状态信号分别接到AD7864的 SL0 SL3硬件(要满足高电平选通;低电平不选的条件); 采集器开机的通道选择默认状态:用一信号控制4个开关 状 态,使之开机时为“0000”状态。 归纳上述设计,需3项内容:操作按键及电路,这个电路可由 单片机控制使其为“0000”;4为读入并口;可由按键电路控制的 4个指示灯。 分析以上设计,二者的复杂程度没有明显差别。即软件方式 也无优势。同学们可根据自己的方案选择。 参考电路设计见下页 3.2.6 数据缓存传输模块 该采集器的主要功能是将模拟信号根据需要转换成数字信号实现数据采 集,并将这些数据传送给上端机进行处理。实现数据传送的方案有多种 ,以下给出三种参考方案: 1 利用双口RAM实现: 将采集的数据存入双口RAM,供上端机读取。此方案有2种实现方式: 在采集器中设计双口RAM,将采集的数据写入本机的双口RAM,将上 端机的地址线、数据线、读信号等通过插座引入,以读取数据。; 在上端机中设计双口RAM,采集器将地址线、数据线、写信号等提供 给上端机,即采集器将采集的数据写入上端机的双口RAM。 2 利用FIFO存贮器实现: 与方案的方法相同,只是采用FIFO代替双口RAM。同样有2种实现方式 。 3 利用串口传输实现: 即将采集的数据通过串口传送给上端机。此方案的优点是简化电路,且 可增加传输距离。缺点是在连续采样时,采样速率比较慢;对于定长采 样,可先将采集的数据存入采集器的RAM中,采够设定长度后,再利 用串口传送,但当设定的长度要受限与RAM的容量大小。 以下给去相应的参考电路设计: 另外还可考虑用串行方式将采集的数据传输给上端机。这 时 就必须对数据传输的方式、波特率及数据块的格式进行约定: 1 采用11位传输方式,第九位为偶校验位 ; 2 波特率约定为2400(采用RS232C接口方式); 3 数据块的格式: 前2个数据为重复的16位格式字,其定义为: D15D8: 同步码,1010 1010B=AAH D7D4:分别代表CH3CH0, 1表示该通道有效,0表示该通道关闭(无数据); D3、D2: 采样频率码(4个采样频率的代码) D1、D0: 采样长度码(4个采样长度的代码) 串行通信程序同学自己完成(内容应包括:设置串行口工 作 方式、设置波特率TI及其启动、开中断等。也可采用查询方式 )。 3.2.7 采样控制与参数输入模块 采样方式选择、采样频率选择、采样通道选择,最终要反映 在采样的具体过程中,因此以上的选择信息要通知单片机。而 且这些选择在什么时候有效比较合理?在采样开始前任何选择 都可以改变!但开始采样以后就不可改变或改变无效。 因此我们设计一个开始按键,当“开始”采样有效,则将当前 的各种设置与选择读入CPU并开始按这些选择参数开始采样。 为了防止在采样过程中改变参数,可用开始键的“开始”状态 取禁止各参数的改变(在以下参考电路中无此功能)。 为了兼顾2种采样模式(定长与连续),设计的思路是: 定长模式:按“开始”键以后开始采样,完成设定的采样点数 自动停止采样,并用指令使“开始”指示灯灭; 连续模式:按“开始”键开始采样,同时指示灯亮;再按该键 则停止采样,同时指示灯灭 3.2.8 译码模块 以上7个模块电路都需要地址及译码信号: 主控制模块: AD转换模块: 读AD7864低8位及锁存高4位:读8000H 读已锁存的高4位数据:读8001H 采样方式选择模块: 频率选择模块: 通道选择模块: 数据缓存模块: 采样参数确认与采样控制模块: 3.2.9 采集器电源模块 3.2 功能模块电路设计的讨论与提示: A/D芯片的选择: AD7864的通道选择即可以用硬件选择方式也可用软件方式 进行选择,这时关键是要考虑软件、硬件实现时的可靠性、 合理性、简易性; 操作控制主芯片的选择: 操作控制电路可用8279实现,也可用其他简易的方法实现, 关键是要综合考虑整个设计的简易程度与操作的方便程度。 数据传输电路设计提示: 与下端机接口建议用双口RAM或FIFO实现,还需必要的控 制铰链(握手)信号(如中断信号)。 硬件实现时与软件的综合因素: 在考虑硬件的实现设计时,必须同时与软件设计综合考虑, 这点对于系统设计很重要。 地址分配与译码: 首先将硬件系统框架建起来,其次将全部硬件所需 要的地址列出,并进行统一规划和分配,建议将 RAM(双口)安排于地址高段(8000HFFFFH) ,将A/D接口地址、人机界面接口地址安排在低段 。另外为了软件设计的方便,尽可能将A/D的读地 址连续起来,这样当用MOVX A,R0指令时易于 修改地址指针。 建议将INT0分配给连续采样方式时的停止键中断 ,将INT1分配给A/D转换结束中断, 对于定长采样方式结束时,用P1.0产生一个脉冲 使A/D启动脉冲停止并使采样结束的LED指示灯熄 灭。 采集器上电后,用P1.2、P1.3使采样方式、频率 为“00”状态(方式之一)。 A/D采样启动脉冲的门控信号:由“开始” 键使之变高为“1”,由“停止”键或软件指令使 之变低为“0”。连续采样方式用停止键结 束,在定长方式结束时用软件使门控信号为 “0”。 在定长采样结束时,用指令在P1.7产生一 负脉冲信号送至与下端机接口进行中断请求 ;在连续采样方式,每当数据缓存满时,用 指令在P1.7产生一负脉冲信号进行中断请求 ,并且当停止连续采样时,也应产生同样的 中断信号。 4 软件设计 4.1 讨论与提示 软件部分应包括有关部分的初始化(设置中断方 式、开中断等)、采样子程序及操作控制的程序等 ,这里比较难处理的是操作控制软件的实现设计。 在设计键盘按键值的获得与确认的键盘处理子程 序时,可考虑用查表的方法实现(也可用简单的键 盘及处理方法); 在采样程序中,应尽可能不用软件控制采样频率 (后续的讨论以硬件方式实现采样频率为例),另 外要考虑怎样将人机界面选择的参数应用到具体的 程序中。 对于实现不同功能的处理可用“多分支散转”的方 法设计(按不同的键则进入相应的功能模块)。 4.2 与程序有关的参数 有关地址分配(设计假设): 数据RAM:0000H (RAM容量) ,用DPTR作地址 指针 A/D读地址:数据低8位:8000H;数据高4位: 8001H; 人机界面设置参数读取地址:8007H. 工作寄存器设定: R4: 存放人机界面的设定与控制状态原始信息值 ; M1、M0、F1、F0、SL3、SL2、SL1、SL0 R5: 存放选择的采样通道个数; R6: 存放采样点数:100(64H); R7: 存放采样点数的倍数(100点的倍数); 4.3 软件工作总流程图 4.4 软件功能子程序及设计 参数处理功能程序 通道个数处理子程序 采样方式实现子程序 定长采样程序 连续采样程序 采样中断处理子程序 主程序 4.4.1通道个数处理子程 序 该子程序根据主程序取入设 置 参数中的SL0SL3位,统计 出 采样的通道个数并存于R5中 。 调用前的入口参数: (R4)=采样参数 执行后的出口参数: (R5)=通道个数 CHN-P: MOV R5,#00H MOV A,R4 ANL A,#0FH RRC A JNC LPH1 INC R5 LPH1: RRC A JNC LPH2 INC R5 LPH2: RRC A JNC LPH3 INC R5 LPH3: RRC A JNC LPH4 INC R5 LPH4: NOP RET 4.4.2 采样方式实现编程: CYFSP: MOV A, R4; ANL A, #0C0H CJNE A, #00H, LPM1 MOV R7,#01H AJMP CYZP LPM1: CJNE A,#40H,LPM2 MOV R7,#0AH AJMP CYZP LPM2: CJNE A,#80H,LPM3 MOV R7,#64H AJMP CYZP LPM3: CJNE A,#0C0H,LPM4 AJMP LXCY LPM4: AJMP MAIN 4.4.3定长采样过程实现编程示例: CYZP: MOV DPTR,#0000H MOV P2,#80H MOV R0,#00H SETB EA SETB ET1 LCY0: MOV R6,#64H LCY1: NOP AJMP $ LCY2: NOP DJNZ R6,LCY1 DJNZ R7,LCY0 SETB P1.0 NOP CLR P1.0 CLR EA CLR ET1 RET 4.4.4 采样中断程序示例: INTP1: MOV A,R5 MOV R3,A LCY1: MOVX A,R0 MOVX DPTR,A INC DPTR INC R0 MOVX A,R0 MOVX DPTR,A DEC R0 DJNZ R3, LCY1 ( POP 7FH POP 7FH CLR IE1 AJMP LCY2 ) RETI 4.4.5 连续采样编程: LXZP: MOV DPTR,#0000H MOV P2,#80H MOV R0,#00H SETB EA SETB ET1 LXP0: MOV R7, #NN;设缓存的长度既与RAM大小有 关 LXP1: MOV R6, #NN ;还与通道数有关! LXP2: NOP AJMP $;等待AD中断(INT1) NOP DJNZ R6,LXP2 DJNZ R7,LXP1 CPL P1.?;乒乓缓存交换,用什么方式实现? SETB P1.0 ;缓存的交换要与电路设计一致 CLR P1.0 JB LXP0 ; 开始标志1,继续采样 AJMP BEGIN; 开始标志0结束连续采样回到? 4.4.6 连续采样方式停止中断程序示例 INT0P: CLR EA CLR ET1 SETB P1.7 ; NOP CLR P1.7 RETI 4.4.7 主程序编程示例: ORG0000H AJMP START ORG0003H AJMP INT0P ORG0013H AJMP INT1P ORG0030H START: MOV SP,#70H MOVP1,#0FFH MOPP1,#00H NOP MOVP1,#0FFH MOVP2,#80H MOVR1,#07H MOVX A,R1 MOVR4,A CALL CHN-P 二 任意信号发生器设计 设计要求: 可产生4种不同的波形信号供输出选择; 任一波形信号的频率可由人机界面选择,选择时 只考虑几个频段(不需频率任意调节); 应有信号幅度的选择(分几个幅度段)。 2. 功能与指标: 信号波形: 正弦波、方波、三角波、任意波; 信号频率:1KHz、 2KHz、 4KHz、 8KHz ; 任意波形频率: 1Hz 8KHz; 具有4个信号幅度可供输出选择: (10V、5V、2.5V、1.25V)或 (5V、 2.5V、 1.25V、 0.625V) 具有2个模拟信号输出通道。 3 设计的一般方法及步骤: 总体设计:根据设计要求建立系统总体框架。 即 根据本系统的功能与指标要求,规划出所需要的硬 件功能模块,和软件总体思路与结构。并根据各模 块的要求与特点,确定出各功能模块之间的接口关 系与要求,进而对总体设计进行修改与调整。 功能模块设计:根据各功能模块的具体要求,选择 合适的芯片并进行功能实现的设计; 接口设计:根据各模块的输入输出及控制需求,列 出该模块需要的各种信号,并设计相应的接口; 软件设计:根据总体设计中规划的软件结构进行软 件的程序设计(主程序及各子程序等的设计)。 综合优化:将各功能模块及接口所需信号等进行总 体的综合与优化(硬件模块及之间的优化、软件与 硬件的综合优化等),完成最终的整体设计。 4 硬件设计提示: 该系统应包含以下模块电路: CPU(51单片机)基本外围电路:时钟复位及三总线等 。 程序存贮器 :存放程序代码与信号波形数据(可选)。 外部数据存贮器:存放任意波形数据(双口RAM:如 IDT7132)。 上端机接口:由上端机产生任意波形数据并写入RAM.这 里有两种设计:一是由上端机确定各参数;二是由本系统产 生波形参数并将参数传递给上端机。后者键盘显示电路用 8279实现为宜,但参数获取较复杂。 建议用第一种方法。 D/A电路:完成数据转换与输出。 人机控制界面电路: 实现输出波形选择、信号频率选择 、信号幅度选择及信号发生器的工作控制等。 综合逻辑电路:译码等逻辑电路。 输出信号频率的控制,可用硬件的方法,也可用软件的 方法。若用硬件的方法,可设计一个定时中断电路来控制输 出信号的频率。 5. 硬件总体设计 根据功能与技术指标要求可将硬件分为以下几个功能模块 : 主控制模块 D/A转换模块 波形选择模块( 2个通道各一个) 频率选择模块( 2个通道各一个) 幅度选择模块( 2个通道各一个) 通道选择模块 数据缓存模块 参数获取电路 输出控制模块 译码模块 电源模块 机箱与面板 5.1 硬件模块电路设计提示: 参数设置电路用8279实现(为满足任意波形 参数的设置);另外也可以将“任意”权交给 PC机,(将第一个数据定义为本波形一个周 期代码的长度,供输出循环用),主要考虑 完成设定功能的简易程度与操作的方便程度 。 人机界面的操作设计除考虑硬件因素外还要 考虑软件设计的方便及软件运行的可靠性。 对于任意波形,可用PC机产生将波形数据 产生并按约定的格式存于双口RAM或FIFO中 。 在考虑硬件的实现设计时,必须同时与软 件的实现设计综合考虑,这点对于系统设计 很重要。 5.2 功能模块电路(简易设计方案示例)构思 : 系统控制电路:单片机、程序存贮器、上电 及上电复位电路、振荡器、三总线、译码电 路。 波形选择电路设计: 该电路的功能是在4种波形中任选一种,要 注意的是每次只能选其中的一种。 频率选择与控制电路与波形选择电路一样。 幅度选择电路在几个规定的4种幅度中任选 一种,其电路同上。 通道选择电路:两路输出可任选一个或两个 : 5.3 系统工作过程: 上电开机系统进入一种默认状态;这时可以进行波形选择 ;频率选择;通道选择;幅度选择;极性选择等设置,按开始 键,系统首先读取设置的全部参数,并根据这些参数开始工作 ,使所设定的信号开始输出。工作结束按停止键,信号输出停 止。 系统的上电默认状态一般是确保上电以后系统进入一种 固定的设置。这些设置是系统具有的状态的一种,也应是比较 常用的一种。本系统设计不考虑关机前设置的记忆功能。 通道1参数定义:W1 W0 F1 F0 V1 V0 CH1 波形选择 频率选择 幅度选择 通道选择 通道2参数定义: W1 W0 F1 F0 V1 V0 CH2 波形选择 频率选择 幅度选择 通道选择 5.4.1 主控制模块设计 5.4.2 数模转换(D/A)模块设计 AD7237A简介 1、功能介绍 该D/A转换器是美国AD公司生产的12位双路数模转换 器 件,其内部有两个独立的D/A转换电路,每个转换电路有各 自 的12位数据寄存器(由1个8位和1个4位组成),与外部的8 位 总线连接;4个数据寄存器由地址A0、A1和片选/CS选通。2 个 D/A由同一个启动信号/LDAC开始同时转换(即同步输出)。 该器件有内部时钟电路和内部参考电压; 该器件可通过外部简单的连接实现不同输出极性的三种 电 压输出方式: 连接VOUTA (VOUTB) 输出为: 0V+5V ROFSA (ROFSB) :连接AGND 输出为: 0V+10V 连接REF INA (REF INB)输出为: -5V+5V 引脚介绍 DB0DB7: 外部数据输入总线 ; /CS: AD7237A片选输入端; /WR: 外部数据写入信号输入引脚; A0、A1: 片内4个数据寄存器选通地址输入引脚; /LDAC: 转换开始启动信号输入引脚,上升沿开始; VOUTA: 通道A的模拟信号(电压)输出引脚; VOUTB: 通道B的模拟信号(电压)输出引脚; REFINA: 通道A参考电压输入引脚; REFINB: 通道B参考电压输入引脚; REF OUT: 片内参考电压输出引脚; ROFSA: 通道A极性控制输入引脚; ROFSB: 通道B极性控制输入引脚; VDD: 芯片电源正输入引脚,范围:+12V+15V; VSS: 芯片电源负输入引脚,范围:-12V-15V。 3 电路设计 该模块是以D/A转换器件AD7237A为核心,并配以必要的 外围电路而构成。参考设计如下: 其中的KP1、KP2为2个通道的输出信号极性选择开关。 5.4.3 波形选择电路设计 该电路要实现以下功能: 在4种波形(正玄波、三角波、锯齿波、任意波)中选择 其中的一种。 该电路的设计还应满足以下要求: 波形选择可用按键任意、方便的操作; 对操作选择有可靠的面板指示; 选择的结果必须以参数的方式提供给单片机; 系统上电或复位以后应给出一确定的默认状态。 5.4.4 频率选择电路的设计 5.4.5 输出幅度选择电路的设计 5.4.6 通道的选择电路参考设计图 5.4.7 参数获取电路设计 5.4.7 参数获取电路 5.4.8 输出控制电路 5.4.9 波形数据缓存电路设计 5.4.10 译码电路 5.4.11 系统供电电路设计 功能模块电路设计提示与示例(简易设计方案 示例): 系统控制主模块:该模块由两部分组成:一是单 片机基本小系统电路,由单片机、上电及复位电路 、振荡器电路、低位地址锁存电路(构成三总线) 。二是译码电路。 波形选择电路 由于有3至4种选择,并考虑到面板的操作及 指示,可用一 个方式选择按键操作,并触发两位D触发器,另外 用139译码器 点亮LED指示灯指示所选的波形;同时两位D触发 器的Q输出供 单片机读取并控制软件的工作方式选择与执行。 频率选择电路、幅度选择电路可参照波形选择电 路设计。 通道选择电路设计:设定两个通道标志,其标志 1表示该通道选定。建议用2个开关状态设计,这2 个参数与本通道的其他参数通过一缓冲电路读入单 片机。 极性选择:用二选一开关即可。ROFSA AGND/REFINA 任意波形数据缓存:建议用双口RAM设计,并给 上端机设计一接口插座。 参数输入电路:用2个74LS245设计2个并口。 信号工作控制:用开始键和停止键分别控制一D触 发器的置1端和置0端(开始键使其位1、停止键使 其位0),同时将D触发器的输出信号反相(/Q)作 为INT0中断输入。也可用一个键使D触发器循环工 作。 频率控制电路: 1、频率控制的定时可用内部定时器设计。 2、用12MHz时钟分频产生4种频率(用4选1芯片 74153)。 12M/6/50=40K、400K/50=8K、200K/50 4K (74190是2、5分频74192是2、6分频74393是4、 2分频) 3、用12MHz时钟分频产生40KHZ频率,结合每周期 的点数控制输出信号频率T=N*t(40点、20点、10 点、5点)。 4、用方式2、3结合的方法控制输出信号的频率(这样 软件设计时要分类,且要用2选1的芯片74157)。 * 74153是双4选1芯片,74157是4个2选1芯片 上电与复位时的默认值设定: 使波形选择、频率选择、幅度选择、通道选择上电 或复位时为:波形的00状态:正弦信号(正弦、方波 、三角波、函数) 频率的00状态:1KHZ;(1K/2K/4K/8K) 幅度的00状态:10V;(10V/5V/2.5V/1.25V) 通道的00状态:2个通道均未选。 电路设计:用软件指令在P1.0、P1.1、P1.2、P1.3产 生负脉冲使以上各电路为“00”即可(接在D触发器的 CLR引脚)。另外用P1.7的负脉冲使开始/停止D触发 器也为“0”状态(即停止)。 建议:12MHZ/6/50=40KHZ的脉冲同时送单片机的 INT1引脚 地址分配: 任意波形数据缓存:用A15=0为片选,地址范围 0000H7FFFH; D/A:需4个端口地址(应使其连续,精简软件设计 ); D/A启动:1个端口地址(送/CONVST引脚); 2个通道参数输入端口:2个端口地址。 译码(用1个74LS139)(A1、A0不参与译码直接送 AD7237): 139输入:A15取反后送/G;A3、A2作为B、A 的 输入。 Y0接D/A的/CS,其地址为: 00000011:8000H8003H Y1接D/A启动引脚/CONVST,其地址:0100即 8004H Y2接CH1参数输入:其地址: 1000:即8008H Y3接CH1参数输入:其地址: 1100:即800CH 软件设计讨论与示例 1 有关约定 : 任意波形数据(双口RAM:IDT7132,2K*8)(低字节在前,偶地址方式) CH1:0000H01FFH; CH2: 200H03FFH,(第一字节为周期长度); D/A中4个数据锁存器地址: CH1:8000H、8001H CH2: 8002H、8003H D/A启动地址 : 8004H(139的Y1); D/A波形数据缓存(在双口): CH1起始地址:400H;CH2:起始地址480H 参数读入地址:CH1: 8008H; CH2: 800CH CH1参数格式:W1 W0 F1 F0 V1 V0 - CH1 CH2参数格式:W1 W0 F1 F0 V1 V0 - CH2 三种固定波形样本数据(各100点)存放地址(在程序存贮器后段): 正玄信号:C00HC4FH,存40点数据,偶地址方式,占80字节 三角波形:D00HD4FH,存40点数据,偶地址方式,占80字节 方波信号:E00HE4FH,存40点数据,偶地址方式,占80字节 2 软件总体设计讨论: 该软件应该由主程序和若干个子程序组成。为 了 便于程序优化,D/A输出子程序应设计成一个各功能 共用的子程序,而将不同功能的执行,用不同的入 口 参数来实现。为此在双口RAM中为2个通道设置2个 D/A输出数据缓存区,这样D/A所用的2个数据指针 就 是固定的。同时根据不同的功能(波形)与频率, 将 其对应的数据样本取存于对应的缓存。而对于信号 频 率的控制则在各功能调时设置(根据频率控制的不 同 方式,则有不同的设置)。 在主程序中应完成系统的初始化、默认状态设 置 等。然后等待“开始”。 在功能程序模块设计时应考虑到以下情况: 控制D/A输出的INT1中断服务子程序也必须是各功能共 用 的,应适合各种功能与方式。 D/A工作的开始,用INT1中断启动开始;同时也可用 INT1的无中断而停止。 D/A输出停止可有两种方式,一是用停止信号产生一上 升 沿信号送到INT0请求中断,这样避免在整个工作过程中需一直 查 询而降低CPU效率。另外一种就是用INT1引脚的脉冲信号的停 止而停止,这样占用INT0资源。 以下设计用第二种方式。 以下设计条件:12MHZ/300=40KHZ的脉冲同时送到D/A 的 /CONVST启动引脚和单片机的INT1引脚。若用这种方式,则频 率选择电路的设计就要将固定的40KHZ脉冲信号直接送 AD7237 的/CONVST 引脚。但2位频率选择码要通过74LS245送到单片 机 的数据总线。 为了提高输出波形的质量,可提高D/A启动脉冲的频率及每 周期的数据点数。 软件功能模块设计与讨论 1。参数处理子程序约定: 8008H为CH1参数读入地 址 800CH为CH2参数读入地 址 3AH单元存CH1参数代码 。 3BH单元存CH2参数代码 。 30H单元存CH1通道代码 ; 31H单元存CH1幅度代码 ; 32H单元存CH1频率代码 ; 33H单元存CH1波形代码 ; 34H单元存CH2通道代码 ; 35H单元存CH2幅度代码 ; 36H单元存CH2频率代码 ; 37H单元存CH2波形代码; 该程序的执行应 由P1.7为1而调用 分析讨论: 由于2个波形输出的D/A是同 步输出共用一个启动信号,而2个 通道的频率又是分别设置可以不 同。怎样解决这一矛盾?一是用 频率低的通道参数F1、F0去控 制153,同时再根据二者的倍数 关系及与触发信号的关系抽取样 本;另外的方法是用一个固定的 且满足上限要求的周期脉冲信号 去控制D/A,而2个通道数据抽取 则依据本通道的频率设定进行。 显然是第二种方法易于实现, 这种方法还可省去用153设计的 频率选择控制电路。以下设计采 用由12MHZ时钟300分频得 40KHZ的脉冲触发INT1(设置 为上升触发)。 信号发生器软件总流程图如下: 参数处理子程序示例: CSCLP: MOV DPTR, #800CH MOVX A, DPTR MOV 3BH,A ;存CH2参数 MOV 34H,A MOV DPTR, #8008H MOVX A, DPTR MOV 3AH, A ;存CH1参 数 MOV 30H, A MOV R1, #31H MOV R6, #03H LPCS1:RR A RR A MOV R1, A INC R1 DJNZ R6, LPCS1 MOV A,3BH ;取CH2参数 MOV R6,03H INC R1 ;(R1) =35H LPCS2:RR A RR A MOV R1,A INC R1 DJNZ R6,LPCS2 ANL 30H,#01H ANL 31H,#03H ANL 32H,#03H ANL 33H,#03H ANL 34H,#01H ANL 35H,#03H ANL 36H,#03H ANL 37H,#03H RET 2 样本调入子程序: 控制D/A工作的INT1脉冲为: 40KHz,各通道样本点数由其设 定的频率参数确定。在程序存贮 器中,每种样本预存40点。 CH1任意波形原始数据:0000H开 始; CH1任意波形原始数据:0200H开 始; CH1输出缓存起始地址:双口RAM :400H47FH CH2输出缓存起始地址:双口RAM :480H4FFH 缓存的第一个字节是周期长度点数 。 该子程序调用时的入口参数约定: DPTR: 为该通道原始样本起始地 址; R0: 抽取后的数据缓存起始地 址; R2: 该通道的频率参数; R7: 为该通道的波形代码。 有关P1口定义说明: P1.0接波形选择电路清零端 P1.1接频率选择电路清零端 P1.2接幅度选择电路清零端 P1.3接启动停止电路清零端 P1.4接启动停止电路状态输入 P1.5空 P1.6 CH1通道状态输入端 P1.7 CH2通道状态输入端 样本调入子程序示例: RYBP: MOV P2,#04H MOV 3FH,#01H MOV A, R7 CJNE A,#03H,LTY0 MOVX A,DPTR MOVX R0,A RLC A MOV R3,A LRE0: MOV A,#00H MOVX A,DPTR MOVX R0,A INC DPL INC R0 DJNZ R3,LRE0 AJMP LTY3 LTY0: MOVX R0,#28H ;28H=40 MOV R3,#50H ;50H=80 MOV A,R2 ;取频率参数 JZ LTY2 MOV A,#28H ;28H=40 LTY1: RR A MOV R3,A MOV A,3FH RL A MOV 3FH,A MOV A,R3 DJNZ R2, LTY1 MOVX R0,A ;存周期点数长度 RLC A MOV R3,A ;得到样本字节长度 MOV A, MOV A,R7 ;(A)为波形参数 ADD A,83H ; 83H为DPH地址 MOV DPH,A ;波形原始样本起始地址 LTY2: INC R0 MOV A,3FH ADD A,DPL CLR A MOVC A,A+DPTR MOVX R0,A DJNZ R3, LTY2 LTY3: NOP RET 幅度处理子程序: 本数据要求幅度分4档选择, 且幅度是整倍数关系(用右移作幅度 除法时要注意是2个字节的除法)。 以 下程序调用要求的入口参数: R3: 输出数据缓存地址低8位; R4: 幅度参数。 FDCLP: MOV A,R4 JZ LFD3 ; MOV P2,#40H; 置缓存地址高 8位 LFD0: MOV A, R3 MOV R1,A INC A MOV R0,A ;R0为低字节首地址 MOVX A,R1 MOV R5,A ;存周期长度 LFD1: INC R1 INC R1 CLR C MOVX A, R1 LFD2: RRC A MOVX R1,A MOVX A,R0 RRC A MOVX R0,A INC R0 INC R0 DJNZ R5,LFD1 DJNZ R4, LFD0 LFD3:NOP RET 4 数据格式化子程序: 将不同周期的数据加倍成 统一的40点长度。以简化 输出子程序。对于任意波 形则不需要进行数据统一 化。 数据加倍。 入口参数: R0:样本缓存首址低8位; R3:该通道的频率参数。 YBSP: MOV A,R3 JZ LSP3 MOV P2,#04H MOV A,#01H LSP0:RL A DJNZ R3,LSP0 SUBB A,#01H MOV R4,A ;需加倍的数 4 数据格式化子程序: 将不同周期的数据加倍 成统一的40点长度。以简 化输出子程序。对于任意 波形则不需要进行数据统 一化。 数据加倍。 入口参数: R0:样本缓存首址低8位; R3:该通道的频率参数。 YBSP: MOV A,R3 JZ LSP3 MOV P2,#04H MOV A,#01H LSP0:RL A DJNZ R3,LSP0 SUBB A,#01H MOV R4,A ;需加倍的 数 5 D/A输出子程序: 该程序要求:是针对任意波形2通道 的周期 点数一样,且不能大于128点。若1个通 道是任 意波形时,任意波形的周期点是必需40 点。 WDAP: SETB EA SETB ET0 SETB ET1 MOV P2,#04H MOV DPH,#80H LPWD0:MOV DPL, #00H MOV R0,#00H MOV R1,#80H MOVX A,R0 MOV R5,A LPWD1: NO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论