APP下载

基于DSP和FPGA的通用控制器设计

2011-06-05刘鹏鹏尹小杰

电子设计工程 2011年21期
关键词:电路图串口芯片

刘鹏鹏,王 晶,尹小杰,隋 峻,王 葳

(西南技术物理研究所 四川 成都 610041)

随着微电子技术的高速发展,出现了很多高性价比的DSP和FPGA芯片,推动控制系统朝着数字化、集成化、模块化的方向发展。DSP具有快速计算的特点,适用于计算复杂、实时性要求高的场合;FPGA具有高速并行工作能力强的特点,可快速、灵活地集成多种外围控制和接口电路。基于DSP+FPGA构架的控制器具有速度快、精度高、可靠性强的特点,并具有易于扩展、通用性强等优点。

1 总体结构设计

控制器采用TI公司的32位浮点型DSP TMS320F28335作为控制器的核心处理芯片,以Altera公司CycloneIII系列的FPGA作为前端预处理及接口电路[1]。FPGA智能化并行管理控制器的外围接口,实现端口的预处理算法,这种设计结构灵活,通用性强,适用于模块设计。

从图1中可以看出,控制器主要由DSP模块、FPGA模块、A/D、D/A转换模块以及串口通信模块。控制器可以利用A/D、串口或QEP多种方式获得控制对象的状态,满足了不同信号输入方式的接口要求;同时,又可以利用D/A、PWM和串口以及并口的多种方式输出信息,从而保证了控制器对于多种场合的应用。

2 控制器各模块的分析

图1 控制器硬件电路结构图Fig.1 Hardware circuit of controller

2.1 DSP模块和FPGA模块

TMS320F28335是TI公司的32位浮点型控制专用数字信号处理器[2],具有运算速度快、低功耗等特点。DSP是控制器的核心,主要完成信号处理和控制信号的产生。

FPGA模块采用Altera公司生产的Cyclone III系列中的EP3C25芯片。FPGA主要完成外部A/D、D/A、串口等的控制和接口电路[3]。

2.2 DSP与FPGA的数据交换

DSP与FPGA之间的通信,文中选用速度快的并口通信。利用TMS320F28335的16位XINTF数据总线和20位地址总线作为二者的数据传输接口,写使能和读使能作为中断[4]。图2是二者的接口电路示意图。

图2 DSP与FPGA的接口电路示意图Fig.2 Interface circuit of DSP and FPGA

DSP的输入和写出采用中断控制,当FPGA准备好写数后,向DSP发送读中断,DSP响应中断后读取数据。当FPGA准备好读数时,也向DSP发送中断请求,DSP就会把处理好的数据放在总线上,等待FPGA读取,这样就能够完成两个芯片的并行通信。

2.3 A/D模块设计

本设计采用AD公司的6通道16位的逐次逼近型AD7656,它具有250 Ksps的采样速率[5]。为使信号具有宽动态范围和高信噪比,在每个通道的A/D转换器之前和控制算法中设计了可配置的增益变换,通过改变Rx可使得在较大扰动时保证大动态范围而降低信噪比,在外部较小扰动时保证高信噪比而损失一定的动态范围。图3是A/D转换电路图。

图3 A/D转换电路图Fig.3 A/D conversion circuit

在控制器启动后,由FPGA配置完成AD7656的初始化。FPGA通过CONVSTA/B/C引脚控制AD的转换通道,以串行方式将转换数据发送到FPGA,由FPGA实现串并转换,存入到FIFO中,等待DSP的读取。AD转换模块包括4个状态:空闲状态、开始状态、转换状态和读状态。图4为FPGA的A/D模块测试结果。

图4 A/D模块测试结果Fig.4 A/D test result

2.4 D/A模块设计

根据转换精度、转换速度和通道数量,D/A转换芯片采用TI公司的DAC8814。DAC8814是16位串行输入数模转换器,采用串行数据输入,具有4路独立参考的电流输出,单次转换建立时间只有0.5 μs。图5为一路D/A转换电路。

图5 D/A转换电路图Fig.5 D/A conversion circuit

在DAC8814完成初始化后,DSP将处理的数据传输到D/A专属的FIFO中存储,经过并串转换输出到DAC8814的SDI,从而得到4路电流信号的输出,经过OPA2277放大后便可直接驱动对象。图6为FPGA内D/A模块输入1 100 101 000 111 010的测试结果。

2.5 串行通信模块

2.5.1 串行通信模块硬件电路的设计

控制器的串行通信模块采用MAXIM公司的MAX3160。它是支持RS-232、RS-485和RS-422多种协议的收发器,可以按需配置为不同的工作模式,增强了串口的适用性。图7为串口通信模块的电路图。

2.5.2 串口通信模块的软件设计

串口管理由FPGA完成,串口通信模块中主要包括波特率产生单元、发送单元、接收单元[6]。

系统的外部时钟为60 MHz,波特率产生单元通过分频得到收发模块所需要的时钟。文以9 600 bps为例,对主时钟进行了391分频和6 250分频,分别得到了接收和发送时钟,其测试结果如图8(a)所示。

在发送单元中,当发送使能信号为高时将发送缓存器中的数据传递给发送寄存器;当发送完成标志位为低电平时,发送数据计数器进行计数,并将发送寄存器中的数据逐一输出;发送数据计数器为8时,输出高电平,将发送完成标志位置高,表示一帧数据发送完成。图8(b)为发送01 010 101得到的测试结果。

图6 FPGA内D/A模块测试结果Fig.6 D/A test result

图7 串口通信模块电路Fig.7 Serial communication circuit

在接收单元中,当连续8个采样数据均为低电平时,则起始信号有效。之后,从起始位的中间位置处每隔16个采样周期采样一次,保证每次都在数据的中间位置采样。接收数据计数到8时,将移位寄存器中的数据并行送出同时将输出数据标识位置高,之后复位,等待下一帧的到来。图8(c)为接收单元输入01 010 101后的的测试结果。

图8 FPGA内串口模块测试结果Fig.8 Test result of serial port

3 结 论

设计的控制器采用高精度浮点型TMS320F2335作为主控芯片,有效提高了控制器的运算速度和精度;利用FPGA扩展了丰富的外围接口,很好地弥补了DSP外设接口不足和灵活性不足的问题。控制器将DSP和FPGA各自的优点相结合,可以根据需要设置相应参数、选择合适的控制算法使其满足多种场合的控制需要。

[1]李伦波,马广富,赵建亚.基于DSP和FPGA的运动控制卡的设计与实现[J].控制工程, 2007,14(3):260-262.LI Lun-bo,MA Guang-fu,ZHAO Jian-ya.Design and realization of motion control board based on DSP and FPGA[J].Control Engineering of China,2007,14(3):260-262.

[2]Texas Instruments.Literature Number:SPRS439B.TMS320F 28335,TMS320F28334,TMS320F28332 DigitalSignal Controllers(DSCs)Data Manual[S].2007.

[3]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2008.

[4]姜楠,马迎建,冯翔.DSP和FPGA并行通信方法研究[J].电子测量技术,2008,31(10):146-148.JIANG Nan,MA Ying-jian,FENG Xiang.Research on parallel communication between DSP and FPGA[J].Electromic Measerement Technology, 2008, 31(10):146-148.

[5]陈茹梅,郭建硕.AD7656型模/数转换器在信号采集系统中的应用[J].电子设计工程,2006(2):67-71.CHEN Ru-mei,GUO Jian-shuo.Application of ADC AD7656 in signal collection system[J].Electronic Design Engineering,2006(2):67-71.

[6]张羽,胡玉贵,殷奎喜,等.基于FPGA的多串口扩展实现[J].电子器件, 2009, 32(1):233-235.ZHANG Yu,HU Yu-gui,YIN Kui-xi,et al.Realization of multi-serials extension based on FPGA[J].Chinese Journal of Electron Devices, 2009, 32(1):233-235.

猜你喜欢

电路图串口芯片
带你学习实物电路图的连接
芯片会议
“且”的真与假
第7讲 电路图与动态电路专题复习
关于射频前端芯片研发与管理模式的思考
浅谈AB PLC串口跟RFID传感器的通讯应用
比亚迪E6纯电动汽车系统结构原理(四)
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
多通道采样芯片ADS8556在光伏并网中的应用