采用可编程逻辑器件实现温控电路接口及其与DSP通信接口的设计

(原文来源:微计算机信息 李森;张春熹;李保国;林恒 在此特别鸣谢!)
1 引言
采用光纤陀螺的捷联惯性导航系统是一种极具发展潜力的导航系统,对于其核心部件的光纤陀螺,尤其是中高精度光纤陀螺,环境温度带来的漂移是不容忽视的,因此对系统进行温度控制很有必要。温度控制电路是整个温控系统的硬件基础,其中涉及到温度采集,与微处理器通信,串口输出,控制数模转换芯片等多个组成部分。本文提出一种高效实用的fpga接口设计,它能够完成协调各个组成部分有序工作,准确、快速实现数据传输,严格控制信号时序等工作。
温控电路整体结构
温控电路的整体结构框图如图 1所示。其中包括七路温度传感器,dsp, 232接口芯片,dac ,后端控制电路,上位机和fpga等多个组成部分。fpga接口是整个电路的核心。 其中,温度传感器采用 dallas公司的 ds18b20,它采用 1-wire总线协议,仅需 1根数据线进行通信。dsp采用 ti公司的tmsvc33,它可以实现高速浮点运算。232接口芯片采用maxim公司的max3232,支持高达 120kbps的传输速率。dac采用 ti公司的tlv5620i,它是通过 4条串行信号控制的 8位 4路数模转换芯片。fpga选用 altera公司的 acex系列的ep1k100,它时钟频率高,具有丰富内部资源,提供大量可编程 io管脚,配置十分方便。基于 fpga的温控电路接口在整个电路中具有非常重要的作用。fpga本身的高速并行结构为整个电路的性能提供了可靠保证。 温控电路工作流程 温控电路的工作流程如图 2所示。fpga与七路温度传感器通信,读取温度值,并存储于内部存储器中,每秒更新一次。fpga发送中断信号通知 dsp读取 fpga中存储的温度值,dsp根据当前温度值和控制算法计算出控制量。而后将温度值和控制量打包成一帧数据发送
给 fpga。fpga将dsp发送来的数据存储在内部存储器后,对数据进行操作,生成输出信号。fpga一方面将数据串行发送给 232接口芯片,然后通过 232串口发送给上位机。上位机可通过监视软件实时观测温度值和控制量的变化情况,方便系统调试与评估;另一方面从数据中提取出控制量,将其串行输出到dac,数字控制信号经过 da转换后输出模拟控制电压到后端控制电路,实现对七路温度的闭环控制。
4.fpga与外围电路之间的通信接口 fpga与外围电路之间的通信接口主要包括与温度传感器,dsp,232接口芯片和 dac的通信接口四个部分。
(1) 与温度传感器的通信接口
本方案的温度传感器采用ds18b20,它通过硬件非常简单的 1-wire总线通信,由于硬件简单所以通信协议比较复杂。要实现与它的通信接口将占用大量 fpga片内资源,而且本方案要进行七路温度采集,因此优化程序设计,减少冗余,节省资源显得尤为重要【2】。
(2) 与 dsp的通信接口
dsp与 fpga的组合已经成为当今数字电路中非常流行的模式。fpga非常适合与 dsp配合。本方案中,dsp与 fpga的通信接口主要由数据总线,地址总线和一些控制信号组成。fpga和 dsp之间由 8位数据总线连接,数据以字节形式并行传输。dsp通过地址总线对 fpga的片内资源寻址。控制信号主要包括复位信号,中断信号和读写信号。
(3)与232接口芯片的通信接口 fpga与 232接口芯片的通信是通过收发两条数据线实现的。本方案中,只存在温控系统到上位机的单向数据传输,故仅需一条发送数据线就可以完成与 232接口芯片的通信。
(4)与 dac的通信接口
本方案选用 ti公司的tlv5620i芯片作为 dac。它是8位4路电压数模转换器。对于它的数字控制基于由 4条信号线组成的串行总线。包括 clk,data,load和ldac四种信号。 5fpga的逻辑设计
在温控电路的总体方案,硬件结构,工作流程和接口协议都确定后,就可以进行 fpga的逻辑设计了。fpga的逻辑设计是整个温控电路接口设计的重中之重。它基于 verilog硬件描述语言。良好的 fpga逻辑设计应该是时序清晰,运行稳定,结果明确和节省资源的。它能够保证整个系统的可靠,稳定和高效。fpga的逻辑模块图如图 3所示。fpga内部逻辑大致分为 reset模块,ds18b20接口模块,总线控制模块,dsp接口模块,双口 ram模块,232接口模块和 dac接口模块等几部分。
(1)reset模块 该模块生成全局复位信号。是所有模块中优先级最高的。系统上电后,该模块将复位信号拉低并持续 1秒而后拉高,对 dsp和 fpga内部其他模块进行复位。
(2)ds18b20接口模块 该模块用于实现与 ds18b20通信,读取并存储温度值。它包含 2个子模块。
一、温度采集模块
该模块实现与 ds18b20的通信协议。首先通过一个初始化序列对 ds18b20进行初始化,包括一个由主机发出的复位脉冲和其后由从机发出的存在脉冲。探测到存在脉冲之后,代表初始化完成,模块将发送 rom操作命令。本方案中,执行 skip rom跳过 rom匹配。之后将发送存储器操作命令。温度转化和读取温度就在这部分完成。其中每一次读写操作都需要严格按照 ds18b20的读写时隙进行。该模块复杂程度高和占用资源多,是整个 fpga中的重要模块。本方案一共有七路温度采集模块,它们的并行结构使得系统可以方便地实现对七路温度的实时监控。 二、温度存储模块
该模块的主要构成部分是一个 14*8位存储器,用于存储七路温度数值,每一路数值需要2个8位寄存器存放。存储完毕后,等待dsp读取。
(3)dsp接口模块该模块主要用于与 dsp进行通信。它包含 3个子模块。 一、dsp写信号同步模块 dsp的数据写入在写信号控制下完成。由于 dsp和 fpga采用不同的时钟源,所以 dsp产生的写信号无法和 fpga的主时钟同步。这样就会导致写数据错误。该模块用于将 dsp写信号与 fpga的主时钟同步。 二、中断生成模块 由于本方案中,温度值每秒更新一次。在温度值更新后,通过中断信号通知 dsp读取温度值。该模块用于生成周期为 1秒的中断脉冲。
三、寻址模块 该模块对 fpga片内资源进行编址,由 dsp的地址总线控制寻址。准确读写所需的数据。
(4)总线控制模块 dsp和 fpga之间的数据总线是双向总线,总线控制模块用于控制总线的数据流向。当dsp从 fpga中读取温度值时,总线控制模块将温度存储模块和数据总线相连,输出数据。当 dsp向fpga中写数据时,总线控制模块将数据总线和双口 ram模块相连,输入数据。
(5)双口 ram模块 该模块主要实现以下三个功能:当 dsp写数据时,将数据存储于内部存储器中;当数据存储完毕后,将其中的控制量发送给 dac控制模块;与串口发送模块通信,将所有数据依次串行输出。
(6) 232接口模块 该模块用于实现串口数据输出,它包含 2个子模块: 一、串口波特率模块 串口通信协议要求数据收发双方有相同的波特率。该模块用于设定串口通信波特率。 二、串口发送模块
双口 ram模块将数据存储完毕后,将给串口发送模块一个标志信号。串口发送模块接到此信号后,依次将双口 ram模块中存储的数据串行输出。
(7)dac接口模块 该模块包含 2个子模块: 一、dac时钟模块 dac需要特定频率范围的时钟来驱动。该模块用于生成驱动 dac的时钟信号。 二、dac控制模块
该模块用于生成dac控制信号。它的基本原理是将双口 ram模块输出的 7路控制量存储在内部存储器,然后根据 dac的接口协议生成 clk,data,load和 ldac等控制信号,这些信号将驱动 dac的工作,将数字控制量转换成模拟电压值。
结束语
fpga接口设计需要综合考虑硬件连接,工作流程,接口协议和逻辑模块等多方面因素,是一项系统工程。本文分别从以上几方面介绍了基于 fpga的光纤陀螺惯导系统温控电路接口设计,该设计目前已应用于实际系统中。经过验证,接口满足系统要求,工作状态良好。本文所述的 fpga接口设计方案是可靠,稳定和高效的。可为其他相关应用提供有益的借鉴。本文作者创新点:七路并行温度采集结构;多功能温控电路接口结构;温度值和控制量打包解包数据传输协议;高效稳定的多接口 fpga逻辑设计;


二合一浪涌保护器综合应用方案
狙击"中国军团" ,松下要在发展中国家推廉价手机
未来全球能源的发展趋势到底是不是可再生能源
电流、电压互感器的工作原理、接线形式
电动化转型 海外LFP材料扩产“升温”
采用可编程逻辑器件实现温控电路接口及其与DSP通信接口的设计
星闪新品SLE duino开发板抢先看!
ETHERNET IP转 ETHERCAT连接ethercat总线伺服如何控制
忽米网荣获维科杯·OFweek2021中国工业互联网年度优秀解决方案奖
Python定时任务的实现方式
日本京瓷新型储能电池成本降3成
精华内容回顾 |OpenSSF开源安全中国峰会
监控图像传输方式
绝缘操作杆参数特点_绝缘操作杆注意事项
vivoX23评测 基本没有什么短板的国产中端旗舰
地物光谱仪在城市绿化监测中的应用
清华大学微电子所所长魏少军教授到福联公司调研
二极管升压电路分析
基于Hi3510的H.264编解码器的设计与实现
高度集成的电源IC应用