基于ARM的多路同步的A/D和D/A设计解析

发布者:JoyfulHarmony最新更新时间:2018-02-02 来源: eefocus关键字:ARM  多路同步 手机看文章 扫描二维码
随时随地手机看文章

    ARM处理器是一种32位精简指令集RISC微处理器,片内集成了丰富的硬件资源,广泛的应用于许多嵌入式系统中。S3C2440是一款基于ARM920T内核的32位RISC嵌入式处理器,运行主频可达400MHz.本文阐述选用S3C2440处理器设计的一种同步、高速、高精度、多通道的数据采集与信号输出系统的设计方法。

    1 多路同步A/D设计

    1.1 ADS8556的功能

    系统选用TI公司生产的16位6路同步逐次逼近型模数转换芯片ADS8556.输入模拟信号电压范围为-12V~+12V.常规应用下功耗为251.7mW,最大功耗为298.5mW,信噪比可达91.5dB.ADS8556芯片内部包含6个独立的采样保持模块和对应的6个独立的模数转换模块,可实现对6路信号的同时同步的模数转换。ADS8556工作模式分为硬件模式和软件模式,本设计采用硬件模式。在硬件模式下ADS8556的功能设置(如每对通道的转换使能、参考电压选择等)都是通过对相关引脚设置高低电平实现的。ADS8556支持并行和串行接口方式,本设计采用串行SPI接口与S3C2440连接。采用串行接口的优点是节约S3C2440的引脚资源,S3C2440绝大多数引脚是功能复用的,若采用并行接口会占用其16个I/O引脚资源。

    ADS8556具有3个串行数据输出端口SDO_A、SDO_B、SDO_C,转换结果通过端口使能可选择这3个串行端口中的1个、2个或3个工作。当3个端口都选用工作时,每个串行端口上输出对应2路每路16位共32位的转换结果,输出时间需要32个时钟周期,每路最大采样率可达450kS/s.当选择2个串行端口时,每个端口输出3路共48位转换结果,输出时间需要48个时钟周期,每路最大采样率可达375kS/s.由于S3C2440只有2个SPI串行接口,所以至多选择ADS8556的2个串行输出端口与其连接。

    1.2 ADS8556与S3C2440接口电路设计

    本设计选用ADS8556的1个SPI串行输出端口SDO_A与S3C2440的1个SPI接口SPI0连接,SDO_A端口输出全部6路共96位转换结果,输出时间需要96个时钟周期,每路最大采样率可达250kS/s.SPI串口以主从方式工作,S3C2440作为主机,ADS8556作为从机,需要4根或3根线连接,3根用于单向传输,4根连接线分别是MOSI(主机输出/从机输入),MISO(主机输入/从机输出),SCLK(时钟信号),CS(片选使能),连接方式如图1所示。其中SPI0接口只用了3根连接线SPIMISO0、SPICLK0和NSS0,未使用SPIMOSI0,这是由于本设计选择ADS8556工作于硬件模式,S3C2440没有给ADS8556输入数据,其功能的设置(如每对通道的转换使能、参考电压选择等)都是通过对相关使能引脚设置高低电平实现的。若在软件模式下,这些功能的选择是由S3C2440通过SPIMOSI对ADS8556内部相应寄存器进行赋值实现的,此时其相关使能引脚均接地。

     

     

    图1 ADS8556与S3C2440接口连接示意图

    1.3 ADS8556的接口程序设计

    S3C2440作为主机,ADS8556作为从机,程序中要对S3C2440的SPI串行端口进行初始化设置,表1所示为相关引脚配置。

    表1 ADS8556与S3C2440的接口引脚配置

     

     

    图2所示为ADS8556的采样程序流程图。S3C2440的SPI接口工作于主模式,数据传输采用中断模式。本设计只使用了ADS8556的6路转换通道中的4个通道。

     

    2 多路同步D/A设计

    2.1 DAC8574的功能

    DAC8574是带有IIC接口的16位4路同步数模转换芯片。DAC8574带有一个IIC串行接口,包括SCL串行时钟输入和SDA串行数据输入两个引脚。输出四路模拟电压为VOUTA、VOUTB、VOUTC、VOUTD,电压范围为+2.7~+5.5V.由外部提供参考电压VREFH、VREFL.A0、A1为IIC地址选择,A2、A3为扩展地址选择,A1、A0、A3、A2共可确定16个地址,在IIC总线上最多可扩展16个DAC8574.本设计在IIC总线上只使用一个DAC8574,则设置地址A1A0A3A2=0000.LDAC为同步输出电压更新。

    DAC8574有三种工作模式:标准模式、快速模式、高速模式。标准模式时传输速率为100kbit/s,串行时钟频率fscl=100kHz,更新率为5.3kS/s;快速模式时传输速率为400kbit/s,fscl=400kHz,更新率为22.22kS/s;高速模式时传输速率为3.4Mbit/s,fscl=3.4MHz,更新率为188.88kS/s.标准模式和快速模式传输线协议基本相同,高速模式不同于标准和快速模式。DAC8574与S3C2440通过IIC总线连接时,DAC8574作为从机,S3C2440作为主机。本设计将DAC8574设置为高速模式。

    2.2 DAC8574与S3C2440接口电路设计

    DAC8574通过IIC接口SDA、SCL引脚与S3C2440连接,其工作模式选择、通道使能、LDAC功能是由S3C2440通过SDA输入设定的。如图3所示,电源电压+5V,参考电压+5V,IOVDD为+3.3V、LDAC接地。

     

     

    图3 DAC8574接口电路

    2.3 DAC8574的接口程序设计

    DAC8574作为从机,S3C2440作为主机,根据高速模式传输协议编写DAC8574的接口程序。图4所示为设计的DAC8574接口程序的流程图。主机先产生一个开始状态,随后产生高速主机编码的串行数据00001XXX.从机设备不需要确认高速主机编码,但必须能够识别并改变自身内部设置以支持3.4Mbit/s的高速传输。主机产生一个重复开始状态,接着发送一个有效的从机地址字节,本设计的从机地址字节为10011000,包括7位DAC8574的地址1001100和1位读写控制位0(主机写入从机)。地址匹配的从机识别地址后产生确认信号。本设计将控制字节设置为00010000,主机发送控制字节设置从机运行模式后,从机产生确认信号。随后,主机发送数据最高有效位MSB,从机产生确认信号,主机再发送数据最低有效位LSB,从机产生确认信号并开始数据更新,这样DAC8574就完成了一次数据接收与数模转换。之后主机可以继续向从机发送数据,最后主机产生停止状态结束当前的数据传输。

    图4 DAC8574 工作程序流程图

     

     

    3 结语

    该设计通过对程序的修改可改变其通道数、转换速率、传输速率,因而具有一定的灵活性。而基于ARM处理器设计的系统还具有成本低、功耗低、实时性能好、智能程度高、可靠性高、体积小、易扩展、功能强、开发周期短等优点,在工业控制、信息技术领域有着广阔的应用空间。


关键字:ARM  多路同步 引用地址:基于ARM的多路同步的A/D和D/A设计解析

上一篇:基于ARM处理器的异常处理分析
下一篇:ARM与GPRS技术的家居实时安防系统解析

推荐阅读最新更新时间:2024-03-16 15:54

百万奥迪A8L不受待见,除了国内不能用自动驾驶外还有这些..
奥迪全新A8L在国内正式发布并宣告上市,屌丝版93.8万,其它五个版本在100~130万之间不等。作为BBA德系三强最后一个换代的D级百万壕车,喊出了“开创驾乘智能新时代”的口号,要把高科技、智能化作为第一武器,刺向竞争对手奔驰S级和宝马7系。   奥迪A8自去年全球首次发布就以“高科技”爆棚的形象刷了一波朋友圈,尤其是带着“首款量产L3级自动驾驶”的帽子,让人不明觉厉,但仔细研究你会发现,奥迪A8L放出的这响“智能汽车”大炮,充斥着不少“期货概念”和“伪智能”,比如自动驾驶国内受限用不了,5G不过是画了一张饼,国内并没有商用网络,作为智能汽车居然不支持系统远程升级(也就是通常所说的OTA)全车洋洋洒洒配了7块屏幕,但是却没有大量
[嵌入式]
ARM笔记:内存控制器程序
.equ MEM_CTL_BASE, 0x48000000 .equ SDRAM_BASE, 0x30000000 .text .global _start _start: bl disable_watch_dog @关闭WATCHDOG,否则CPU会不断重启 bl memsetup @设置存储控制器 bl copy_steppingstone_to_sdram @赋值代码到SDRAM中 ldr pc,=on_sdram @跳到SDRAM中继续执行 on_sdram: ldr sp,=0x34000000 @设置栈 bl main halt_loop
[单片机]
ARM裸板】按键外部中断过程及示例
1.初始化 设置中断源(让它能发出中断信号) 设置中断控制器(让它能发出中断信号给CPU) 设置CPU总开关(CPSR有I位,设置总开关,使能中断) 处理时要分辨中断源 处理完要清中断 1.1 中断源 设置按键为中断源引脚 配置引脚为外部中断模式 配置中断为下降沿触发 配置外部中断MASK使能 //初始化外部中断,设置按键为中断源 void key_eint_init(void) { /* 引脚:GPF0、2 GPG3、11 */ /* 中断:EINT0、2 EINT11、19*/ GPFCON &= ~((3 0) | (3 4)); //清零 GPFCON |= ((2 4) | (2 0)); //设置 ,配置
[单片机]
【<font color='red'>ARM</font>裸板】按键外部中断过程及示例
基于SPMC75F2413A单片机的步进电机加减速控制
  步进电机(脉冲电动机)是一种将电脉冲转化为角位移的执行机构,是数字控制的一种执行元件,其可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机具有转矩大、惯性小、响应频率高等优点,因此具有瞬间启动与急速停止的优越特性。步进电机在各种应用场合下最大的优势是:可以开环方式控制而无需反馈就能对位置和速度进行控制,但也正是因为负载位置对控制电路没有反馈,步进电机就必须正确响应每次励磁变化。如果励磁频率选择不当,电机不能够移到新的位置,那么实际的负载位置相对控制器所期待的位置出现永久误差,即发生失步现象或过冲现象。因此步进电机开环控制系统中,如何防止失步和过冲是开环控制系统能否正常运行的关键。   本设计使用
[嵌入式]
利用TPS2393A实现大电流热插拔应用
摘要 TPS2393A集成电路是一款专为-48V系统优化的热插拔控制器。TPS2393A广泛用于许多应用中,它拥有如下强大功能: l 宽泛的输入电源范围 l 可编程电流限制 l UV/OV保护 l 插入检测 l 电源正常指示 l 告警 TPS2393A拥有负载电流转换速率控制功能,可对浪涌负载的电流进行管理,并同时具备峰值电流限制功能。正常情况下,实际额定负载电流始终小于安全余量电流限制阈值。但是,在一些情况下,应用需要让更大的额定电流进入负载。这种情况会对用于控制应用浪涌电流的FET产生很大的应力(例如,一个10A额定电流下要求-48V的系统)。初始开启时,如果电流被限制为10A(最初可能为480W),则
[电源管理]
利用TPS2393<font color='red'>A</font>实现大电流热插拔应用
ARM基础知识连载之四
ARM中异常中断的种类 **复位(RESET)** 当处理器复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。复位异常中断通常用在下面几种情况下:系统加电时;系统复位时;跳转到复位中断向量处执行成为软复位。 **未定义的指令** 当ARM处理器或者是系统中的协处理器认为当前指令未定义时,产生未定义的指令异常中断,可以通过改异常中断机制仿真浮点向量运算。 **软件中断** 这是一个由用户定义的中断指令。可用于用户模式下的程序调用特权操作指令。在实时操作系统中可以通过该机制西线系统功能调用。 **指令与取终止(PrefechAbort)** 如果处理器预取的指令的地址不存在,或者该地址不允许当前指令访问,
[单片机]
linux使用usb转串口调试ARM开发板
usb转串口使用的是pl2303芯片,linux2.4以上版本已经自带驱动。 1.安装minicom Ubuntu中使用 sudo apt-get install minicom 安装即可 2.配置minicom # minicom -s Serial port setup +-------------------------------------------------------------+ | A - Serial Device : /dev/ttyUSB0 | | B - Lockfile Location : /var/lock | | C
[单片机]
高效D类音频放大器MAX9700/MAX9712
摘要:MAX9700/MAX9712是MAXIM公司生产的低EMI、免滤波、高效率D类音频放大器,其中MAX9700的负载功率为1.2W,MAX9712为500mW,适合MP3、PDA等便携式音频应用,文中对它们的结构、功能、主要特点及应用作了详细介绍。 关键词:D类音频放大器;MAX9700;MAX9712 1 概述 MAX9700/MAX9712是MAXIM公司推出的两款单声道D类音频功率放大器,MAX9712能够以高于85%的效率为8Ω负载提供0.5W的功率, MAX9700的转换效率更是达到90%以上可为8Ω负载提供1.2W的功率。MAXIM专有的低EMI调制方案省去了传统的D类输出滤波器同时抛弃了笨重的散
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved