(1)接口硬件设计。
STM32内部集成灵活可调的以太网模块,满足嵌入式系统实现低成本以太网通信的应用需求,可以在半双工和全双工的模式下提供10 M/100 Mbps的以太网介入。该模块支持IEEE 802.3以太网MAC协议,硬件上带有PTP(IEEE1588)功能。支持两种标准接口:独立于介质的接口(MII)和简化的独立于介质的接口(RMII),但并没有提供物理层(PHY)接口,所以,需要通过扩展物理层芯片来提供以太网的接入通道,本系统选用DP83848C作为以太网物理层接口芯片,该芯片是一个10 M/100 Mbps单端低功耗物理层器件,性能可靠、成本低廉,提供包括MII/RMII/SMI三种接口,可以很方便与STM32连接。
为了保证一定的灵活性,选用MII接口方式用于MAC子层和PHY之间的互联,允许10 Mbit/s和100 Mbit/s数据传输,MII接口信号连接如图6-15所示。
图6-15 MII接口信号连接图
该接口可为传输发送数据和传输接收数据提供连续的时钟信号,对于10 Mbit/s的数据传输,时钟频率为2.5 MHz,对于100 Mbit/s的数据传输,时钟频率为25 MHz。
(2)接口软件设计。
STM32F407通过以太网接口与采集控制与复现模块进行数据通信,基于LwIP协议栈,利用改进的UDP协议实现通信数据实时稳定传输。通用计算机则利用Borland公司的C++Bulider平台中的TNMUDP控件实现与数据采集模块的数据交互。软件执行流程图如图6-16所示。
图6-16 以太网通信实现流程
在没有操作环境的情况下,LwIP移植只是移植内核核心,应用程序编写都基于raw/callback API。通过调用LwIP的API函数用于信息传输的以太网通信,在一定程度上缩短了开发周期,降低了开发难度。
6.2.3.2 基于OpenGL的PPI信息显示
(1)PPI扫描线及背景的显示。(www.daowen.com)
OpenGL的程序设计首先要设置一个背景,包括屏幕的颜色、大小、长宽、在窗口中的位置等,在VC++中,背景的设置都需要特定的函数来实现,即使一个简单的设置结构也显得相对复杂,而在C++Bulider中,使用一个可视化的编程组件:TOpen-GLB6,用于OpenGL编程时进行背景设置。绘制图形流程如图6-17所示。
图6-17 OpenGL图形绘制流程
将PPI扫描线及背景图形的绘制内容采用列表存储的方式,提高了程序的运行性能的。
由于装备的PPI显示器采用的是模拟显示器,所以扫描线在屏幕上旋转则会产生余晖,在OpenGL中这种视觉效果主要通过颜色的融合和深度控制来实现,融合因子模型为
该模型为指数衰减函数,其中i表示像素点,表示像素点i的融合因子,表示像素点i-1的融合因子。
(2)PPI字符的显示。
PPI的显示信息还包括数字、字母及符号共64个字符,用6位二进制表示。使用OpenGL绘制字符可采用位图绘制字符的方法,但是需要创建大量位图数据,并且字符的大小、形状不能随意改变。所以,本设计采用一种文本输出的方法显示64个字符,不仅节省存储空间,而且可以设置字符的大小、形态、位置等属性,提高了系统的通用性。
实现过程中需借助第三方的程扩展序来实现文本的输出,在Windows系统中可使用wgl函数来创建具有一定属性的文本字体,并基于DC字体字图建立一套显示列表,通过调用显示列表来一一绘制文本字符。
通过三通电缆线将火控系统的PPI信息产生的信号输入至本系统中,由控制与复现模块下达开始与停止采集的指令,数据采集模块在指令的控制下对信号进行软性采集,并以40 ms为周期将采集数据传输至复现模块,复现模块通过数据解码、OpenGL渲染,将PPI信息显示在系统终端中,显示界面如图6-18所示,其中字符显示的内容通过信号解码获得,字符显示的位置则通过AD转换得到。
图6-18 PPI信息采集与重显系统界面
PPI信息采集与重显示系统显示的PPI信息的内容及位置与装备PPI显示器显示的信息是一致的,满足实时、精确的要求,为某火控系统PPI信息的远程重现提供了可行性的方案。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。