(4)高速DAC:2路,位数14位,最大采样速率210 MSP;
(5)串行DAC:6路,串行控制接口SPI;
(6)输入输出数字信号电平标准:5V CMOS/TTL电平;
(7)检测插座:为9种电路板提供检测插座;
(8)激励信号:为9种电路板诊断提供电源和激励信号;
(9)检测信号:被测信号通过信号诊断钩引入信号产生单元,一部分由FPGA或ARM检测,一部分经模拟开关选通输出至数据采集器检测。
2.3 AT91SAM9G20的启动和中断
2.3.1 AT91SAM9G20的启动
AT91SAM9G20有两种启动方式,内部启动和外部启动。
系统上电,AT91SAM9G20检测管脚BMS(启动模式选择),如果BMS为高电平,则系统从片内ROM启动。由于AT91SAM9G20的ROM中固化了一个BootLoader程序,ROM上电后被映射到了0x0。AT91SAM9G20从0x0处开始执行这个BootLoader,依次完成USB DEVICE和DEBUG USART时钟设置、堆栈设置、检测主时钟源、中断控制器的设置、C变量的初始化、跳到主函数。接下来 BootLoader在片外存储器中寻找有效的可执行代码,这些有效代码可以是应用程序,也可以是第二级引导装入程序。如果某存储器的代码有效,则该存储器的代码将被下载到AT91SAM9G20处理器的片内SRAM的起始地址(OxOO200000)处,随后该地址就会被映射到0x0并执行。
如果BMS为低电平,则系统从外部存储器启动,AT91SAM9G20处理器会从片外FLASH中的第一条代码开始执行。因此片外FLASH中的代码必须实现片内的ROM中固化的BootLoader程序的所有功能,当然这样在进行程序设计时更加灵活。
2.3.2 AT91SAM9G20的中断
高级中断控制器(AIC)是一个有8个优先级,独立屏蔽,最高提供32个中断源处理的矢量中断控制器。它的设计充分降低了软件与实时开销内部与外部中断处理。AIC驱动ARM处理器nFIQ (快速中断请求)与nIRQ (标准中断请求)输入。AIC输入可以是内部外设中断或来自器件引脚的外部中断。
(1)特性
8级优先级控制器允许用户对每个中断源优先级进行定义,允许高优先级中断打断低优先级中断先行处理。
内部中断源可编程为电平敏感或边沿触发。外部中断源可编程为正沿或负沿触发或高电平或低电平敏感。
快速强制特性可改变内部或外部中断源提供一个快速中断。
(2)中断处理过程
当中断发生时,ARM处理器会根据中断的类型,将指令寄存器强制指向中断向量对应的地址。所以,普通中断发生时,ARM处理器会执行0x18处的指令:LDR PC,[PC,#-&F20]。中断向量寄存器AIC_IVR映射在绝对地址0xFFFFF100处,因而当处理器执行指令时,实际上就是读取中断向量寄存器AIC_IVR中的值,当处理器读AIC_IVR时,返回当前中断相关的AIC_SVR中值,从而转到相应的中断处理程序进行分支处理。
进入中断处理函数后,首先要保存链接寄存器(R14_irq) 及SPSR_IRQ,将当前使用的CPU寄存器入栈。并通过清除CPSR中的“I”位来不加以屏蔽,使得内核又能相应高于当前中断优先级的中断。然后按要求执行相应的中断处理。中断处理函数退出之前必须写中断结束命令寄存器(AIC_EOICR),以指示AIC当前中断已完成,并且将相应的CPU寄存器退栈,恢复中断前的状态。
2.4 DM9161网口程序设计
AT91SAM9G20内嵌一个以太网控制器,在本设计中,使用DAVICOM公司生产的以太网控制芯片DM9161作为 AT91SAM9G20与以太网连接的物理层接口芯片。
DM9161是一款低功耗,高性能的CMOS芯片,支持10和100M以太网传输,主要完成对网络数据的接收解码和对数据帧编码发送。它完全兼容IEEE802.3u l0Base-T/l00Base-Tx标准,同时兼容ANSI X3T12 TP-P如1995标准;支持MII和RMII两种接口模式,方便与AT91SAM9G20互连。DM916l采用0.35um CMOS技术,3.3V单电源供电,48脚LQFP小封装设计。 电路板故障检测仪软件设计仿真+流程图(4):http://www.youerw.com/tongxin/lunwen_2634.html