基于单片机SPI器件的串口控制

发布者:zeta16最新更新时间:2010-03-22 来源: 现代电子技术关键字:SPI  串口控制  AD7390  单片机 手机看文章 扫描二维码
随时随地手机看文章

  0 引 言

  串行外设接口(Serial Peripheral InteRFace,SPI)是一种高速同步串行输入/输出端口,近年来广泛应用于移位寄存器、D/A转换器、A/D转换器、串行E2PROM、LED显示驱动器等外部设备的扩展。SPI接口可以共享,便于组成带多个SPI接口器件的系统。其传送速率可编程,连接线少,具有良好的扩展性。

  1 SPI接口介绍

  SPI是摩托罗拉公司推出的一种同步串行通信接口,用于微处理器、微控制器和外围扩展芯片之间的串行连接,现已发展成为一种工业标准。目前,各半导体公司推出了大量的带有SPI接口的具有各种各样功能的芯片,如RAM,E2PROM,FLASH ROM,A/D转换器、D/A转换器、LED&LCD显示驱动器、I/0接口芯片、实时时钟、UART收发器等,为用户的外围扩展提供了极其灵活而价廉的选择。由于SPI总线接口只占用微处理器四个I/O口线,故采用SPI总线接口可以简化电路设计。节省很多常规电路中的接口器件和I/O口线,提高设计的可靠性。目前,已有部分厂家的单片机具有SPI接口,如Philips的P89LPC900,Atmel的Atmega128等,但是,大部分单片机不支持SPI接口。在实际应用中,出于产品体积、成本和可扩展性等方面的考虑,设计人员往往希望使用不具备SPI接口的单片机来控制具备SPI接口的外围器件。现以AT89C2051单片机模拟SPI总线操作串行AD7390为例,如图1所示,介绍利用单片机的I/O口通过软件模拟SPI总线的实现方法。

系统框图

  SPI使用的四条线是串行时钟线(SCK)、主机输入从机输出线(MISO)、主机输出从机输入线(MOSI)、低电平有效的使能信号线(CS)。这样,仅需3~4根数据线和控制线即可扩展具有SPI接口的各种I/O器件。

  SPI 总线具有以下特点:

  (1)因连线较少,可简化电路设计。并行总线扩展方法通常需要8根数据线、8~16根地址线、2~3根控制线。而SPI总线设计,仅需4根数据线和控制线即可完成并行扩展所实现的功能。

  (2)器件统一编址,并与系统地址无关,操作SPI独立性好。

  (3)器件操作遵循统一的规范.使系统软硬件具有良好的通用性。

  2 AD7390的基本结构和工作原理

  AD7390是ADl公司生产的12位分辨率电压输出数/模转换器。该DAC为用户提供低成本、高精度的可控电压解决方案,使用单电源+3V系统供电。器件保证电源电压为2.7~5.5V时消耗不到100mA的电流,所以该器件适用于一些对功效要求高的设备,比如电池供电系统。输出电压取决于外部参考输入电压。DACOUT输出介于REFIN与地之间的任意值,其内部框图如图2所示。

内部框图

  内部双缓冲串行数据接口提供高速转换,微控制器通过三线SPI控制器件、串行数据(SDI)、时钟(CLK)和使能(LD)引脚。此外,使用CLR输入可以对输出清零。操作时序如图3所示。

操作时序

  3 AD7390的串口控制

  电脑通过RS 232向MCU发送控制信号,再由MCU控制AD7390,完成整个设置过程。通过串口控制AD7390的软件流程如图4所示。一旦有数据写入单片机,则单片机将重新设置AD7390。

通过串口控制AD7390的软件流程

  单片机程序分为三大模块,分别是SPI控制模块、串口接收模块和操作信息反馈模块。

  SPI控制模块产生CLK,LD,并在CLK的上升沿到来之前,保证SDI数据的稳定,以便AD7390准确地采集到数据。CLK时钟的频率根据器件的典型延迟决定,不同器件有不同的延迟,所以它决定了不同器件的时钟应该不一样。

  串口接收模块完成从电脑接收数据并保存数据。由一片MAX 232完成RS 232电平与TTL电平之间的转换。因为传输的是连续性数据,因此在接收程序的编写时,要注意中断申请的屏蔽,才能准确地接收到全部数据。

  在利用串口调试助手调试时,留意发送数据的格式,是否以16进制发送,会影响接收到的数据。比如,发送字母“E”,如果以16进制发送。发送的实际数据是“15”,而接收到的数据是“15”的ASCII码“49”、“53”;如果不以16进制发送,则发送的是字母“E”的ASCII码“69’。由此可以看出它们之间的差别。因此在接收方要得到想要的数据,则需要进行转换。该转换可参看后面的程序。

  操作信息反馈模块完成操作结果的可视化输出,通过内部计算,输出设置的电压值,这为调试过程提供了很大的便利。

  AD7390为12位数/模转换器。该器件接收16位数据,数据格式如图5所示,取低12位作为有效数据,自动舍弃高4位。因为单片机传输数据以字节(8 b)为单位,所以采用16位传输模式。

数据格式

  部分程序代码如下:

程序

程序

  4 结 语

  通过串口的应用,SPI器件的控制变得很方便。由于串口占用资源少,所以SPI接口在集成芯片中越来越广泛的应用,将使该控制模式成为以后系统中的典型设计。

关键字:SPI  串口控制  AD7390  单片机 引用地址:基于单片机SPI器件的串口控制

上一篇:基于USB2.0的红外数据传输系统的设计与实现
下一篇:单片机控制的多参数实时采集与处理系统设计

推荐阅读最新更新时间:2024-03-16 12:28

Microchip新推器件和扩展设计生态系统,提升电机控制支持
随着电机在越来越多的系统应用中日益普及,开发人员需要能确保系统尽可能高效运行的产品和工具,同时减少电路板尺寸、元件数量和能耗。美国微芯科技公司(Microchip Technology Inc.)今日宣布扩大电机控制产品阵容,推出全新数字信号控制器(DSC)和单片机(MCU)产品,提供设计工具、开发硬件、转矩最大化算法和冰箱压缩机参考设计。 Microchip MCU16 业务部副总裁 Joe Thomsen 表示:“Microchip 的 dsPIC33C DSC 器件等新产品具有高度的模拟集成度,是我们持续投入致力于简化电机控制系统设计的成果,可降低汽车、工业、医疗和消费类应用的开发和物料清单成本。我们最近还加强了支持生态
[嵌入式]
Microchip新推器件和扩展设计生态系统,提升电机<font color='red'>控制</font>支持
何谓单片机 单片机基础知识
所谓单片机,其实就是一个集成了微处理器、存储器、各种输入输出接口的芯片。学术上管它叫做“单片微型计算机”。要实现单片机的各种功能,就需要我们动手编写程序来控制芯片各个引脚在不同的时间输出不同的电平(高电平或者低电平)进而控制单片机的外围电路实现单片机系统的各种功能。我们都学过C语言,要是让我说,大学里最难过的不是英语四、六级,而是计算机二级C语言。学习之初,学哥就把汇编语言给否定了,学习过程中听到的最多的忠告也是“千万要学好C语言”,如果初学者重新温习一遍谭浩强的《C程序设计》也应该够用了。 世界上的东西就是这么神奇,没想到单片机也有那么多的品牌、型号,第一眼看教材的时候我甚至都有了想骂人的冲动。现在想想,那些冲动之所以叫做冲动
[单片机]
单片机双机串口通信原理图
主机程序: #include reg51.h unsigned char i=1; unsigned char ACK=1; void delay() //延时函数 { unsigned char i,j; for(i=255;i 0;i--) for(j=100;j 0;j--){} } unsigned char kbscan() //键盘扫描函数 { unsigned char sccode,recode; //定义行、列 P1=0xf0; //高四位作为输入先写1 if((P1&0xf0)!=0xf0) //
[单片机]
<font color='red'>单片机</font>双机<font color='red'>串口</font>通信原理图
一种基于单芯片方案的电子秤系统设计
  电子秤中模数转换电路现在主要有两种实现电路:由分立元件组成的积分电路和单个模数转换(ADC)芯片。积分电路构成的系统外围电路复杂,对个别元器件要求高,存在功耗大、可靠性不高、温度性能差的缺点;而单个ADC芯片构成的系统具有高精度、低功耗、高稳定性的特点,且外围电路简单有利于生产及维护。因此,现在大部分电子秤厂家偏向于使用单个ADC的方案。   随着技术的发展,生产和应用要求更加简单、精度更高、成本更低、功耗更低的解决方案,电子秤电路不断向着更高集成化的方向发展。CSU1221是芯海科技公司自主研发的集成高精度ADC的CMOS单芯片MCU,是国内首创的一款应用于商用电子秤的SoC芯片。    CSU1221 芯片技术特性
[测试测量]
一种基于单芯片方案的电子秤系统设计
芯圣电子HC89S003A系列MCU简述
HC89S003A系列是芯圣兼容STM8S系列Flash单片机,内置增强型8051内核,拥有16K的Flash内存以及256Bytes+768Bytes的RAM;HC89S003A系列拥有丰富的外设资源,包括5个16位的定时/计数器、3组12位带死区控制以及1路8位的PWM、16+2路12位的ADC、1个SPI、2个UART、1个IIC以及独立的CRC模块;HC89S003A系列还支持2.0~5.5V的工作电压与-40℃~+105℃的工作温度。 以下为该系列目前在售的型号及对应参数: 此外,HC89S003A系列支持引脚全映射,使其在硬件兼容方面有着得天独厚的优势,可以适用于绝大多数的应用领域,例如消防安防,LED驱动电源
[单片机]
芯圣电子HC89S003A系列<font color='red'>MCU</font>简述
AVR单片机的主要特性及应用介绍
AVR单片机是ATMEL公司研发的增强型内置Flash的RISC精简指令集高速8位单片机,设计时吸取了8051及PIC单片机的优点,具备单时钟周期执行一条指令的能力,运行速度高达1Mips/MHz。AVR单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。 AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑),提高了指令执行速度,克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。AVR单片机在软/硬件开销;速度、性能和成本诸多方面取
[单片机]
AVR<font color='red'>单片机</font>的主要特性及应用介绍
51单片机制作的六位数显多路定时电子钟
这里介绍的电子钟,电路可称得上极简,它仅使用单片的20引脚单片机完成电子钟的全部功能,而笔者见到的其它设计方案均采用二片以上的多片IC实现。 一片20引脚的单片机STC2032(引脚排列与AT89C2051完全相同)为电子钟主体,其显示笔画数据从P1口分时输出,P3口则输出对应的六位选通信号。由于LED数码管点亮时耗电较大,故不能使用AT89C2051单片来完成,但是可以可以用STC89C2032来完成。另外,本站制作时用超高亮的发光二极管代替昂贵的大数码管,成本低,效果独特。 本电子钟设计有三个轻触式按键,这里我们分别命名为:模式设定键K1、加调整键K2、减调整键K3。由于STC89C2032内部已经集成有复位电阻,所以,
[单片机]
51<font color='red'>单片机</font>制作的六位数显多路定时电子钟
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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