基于单片机SPI器件的串口控制
时间:11-05
来源:互联网
点击:
串行外设接口(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。
单片机程序分为三大模块,分别是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接口在集成芯片中越来越广泛的应用,将使该控制模式成为以后系统中的典型设计。
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。
单片机程序分为三大模块,分别是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接口在集成芯片中越来越广泛的应用,将使该控制模式成为以后系统中的典型设计。
LED 半导体 LCD 收发器 总线 电路 单片机 Atmel 51单片机 电压 DAC 电流 MCU 相关文章:
- OLED显示模块与AT91RM9200的接口设计(02-13)
- ZLG7290在智能仪表面板接口设计中的应用(03-10)
- 低价位嵌入式处理开发套件--Spartan-3E 1600E (07-07)
- 大屏幕LED显示屏的高速控制方案(04-09)
- PoE和LED结合的低功率、高亮度、长电缆解决方案(04-12)
- 基于单片机IAP技术的LED显示屏控制系统(04-12)