概述:

本文介绍Power PC处理器MPC8247与EEPROM(RTC)芯片X1226的通信在vxworks下的实现。

芯片简介:

MPC8247是一款功能丰富的通信处理器,它集成了一个高性能的PowerPC RISC微处理器,一个灵活的系统集成单元,以及许多可用于不同应用的通信外围控制器,特别是通信和网络系统。

X1226 是一个带有时钟,日历,两路报警,512 x 8位的EEPROM,振荡器补偿和电池切换的实时时钟。振荡器使用一个外部的,低价格的32.768Khz的晶体。

硬件电路:

MPC8247, RTC X1226

MPC8247, RTC X1226

1) 晶振为32.768K

2) I2C_SCL和I2C_SDA为漏极开路,接上拉电阻

原理分析:

VxWorks默认的注释类型是"/* ...... */", 在使用C++类型的注释"//",就有可能报错。

一种方法是移除-ansi开关。可是怎么移除呢?对许多对编译器不太了解的人可能看了FAQ了不知道怎么办。下面具体讲解:

在VxWorks的工程里有build这个选项,字体变黑的就是你选的编译类型,以default为例,双击default(默认的),在c/c++compiler和assember里将-ansi去掉,保存就OK了!

下面来自预编译器文档'-lang-c', '-lang-c89', '-lang-c++', '-lang-objc', '-lang-objc++', specify the source language.

  • `-lang-c' is the default; it allows recognition of C++ comments (comments that begin with '//' and end at end of line), since this is a common feature and it will most likely be in the next C standard.
  • '-lang-c89' disables recognition of C++ comments.
  • '-lang-c++' handles C++ comment syntax and includes extra default include directories for C++.
  • '-lang-objc' enables the Objective C '#import' directive.
  • '-lang-objc++' enables both C++ and Objective C extensions.

These options are generated by the compiler driver gcc, but not passed from the 'gcc' command line unless you use the driver's `-Wp' option.

其实如果要跟深入了解,可以看看GNU方面的资料,另外,在.cpp格式的文件中可以使用//做注释,编译不会报错。

使用Makefile来和风河的Workbench一起编译

在VxWorks6.x下,开发者使用风河的Workbench来进行软件开发。我们在db/build_vxworks目录下提供了两个makefile文件。可以使用他们来编译Berkeley数据库或者Berkeley数据库的小型编译,使用风河的Workbench提供的编译工具链。

我们假设你已经安装了所有必要的VxWorks6.x软件,包括风河的Workbench,并且你知道如何使用它。

使用下述的步骤来编译Berkeley数据库:

1. 设置Makefile里面的变量。

打开Makefile并修改BDB_ROOT变量,设置成你的Berkeley数据库源树的根目录。当你在不同的平台上编译的时候,可能需要设置别的变量,比如BUILD_SPEC, DEBUG_MODE, PROJECT_TYPE, 编译的工具参数和BUILD_SPEC的具体设定。

请参考Workbench的文档来查看可用的变量值的完整的列表。你也可以通过使用Workbench创建一个项目的方法来找到所有数值的列表。每一个变量的可用的数值将会在GUI窗口里面列出来,你可以给那个变量进行赋值。

2. 请确保"make"命令能够被找到。通常你需要设置make工具的路径到环境变量中。

3. 启动风河Workbench带的'wrenv'工具。

4. 在命令行控制台上,切换到$(BDB_ROOT)/build_vxworks/ 目录下,重命名目标 makefile( Makefile.6x 或者 Makefile.6x.small)到“Makefile", 并且运行"make"命令。这个”make"过程将会开始并且创建一个名叫"bdbvxw"的路径。 它将包含全部的中间目标文件以及最后的编译镜像"bdbvxw.out"。

5. 在"bdbvxw.out"镜像编译完成后,你可以使用命令工具或者Workbench IDE来下载和运行它。

6. 测试和验证。

那有一个dbdemo和test_micro, 你可以运行他们来验证是否所有功能都正常工作。

X86的板子上要跑VxWorks的话,bios必选先执行一段load,用来引导VxWorks的image文件,这段load可以放在软盘,U盘,硬盘等存储介质上,其主要内容有2点:

1 改写存储介质的MBR(512B),让bios可以读取指定名字的启动文件,如bootrom.sys

2 把启动文件放入存储介质里,要求存储介质必须挂载FAT16文件系统

(FAT16文件系统限制了启动盘不能超过2GB)

可见重点是要对存储介质分区,格式化,挂载文件系统,写入MBR,写入启动文件。整个这个过程称之为启动盘制作。风河支持多种启动方式,这里重点介绍其中2中,分别是: 在windows下通过diskpart制作 和 在linux下通过fdisk工具制作。

使用Diskpart工具在windos下制作VxWorks U 盘启动盘

1. 键盘快捷键 “windows键+R” 运行”cmd”,打开命令行窗口
2. 输入”diskpart”启动,插入U盘或者硬盘
3. 输入 “lis dis” 显示磁盘列表
DISKPART> lis dis
Disk ### Status Size Free Dyn Gpt
——– ————- ——- ——- — —
Disk 0 Online 465 GB 0 B
Disk 1 Online 465 GB 2048 KB
* Disk 3 Online 959 MB 0 B
4 输入”sel dis X” 选择X号磁盘,此处Disk 3 是U 盘,选择成功后焦点指向disk 3
DISKPART> sel dis 3
Disk 3 is now the selected disk.
DISKPART> lis dis
Disk ### Status Size Free Dyn Gpt
——– ————- ——- ——- — —
Disk 0 Online 465 GB 0 B
Disk 1 Online 465 GB 2048 KB
* Disk 3 Online 959 MB 0 B
5 输入”clean”清除磁盘上所有的内容

摘 要: 传统低速航空总线已无法满足机载座舱大屏幕显示器高速数据通信的应用需求。针对此现状,提出了一种基于MPC8548E的高速总线通信系统。该系统以MPC8548E为核心,采用PCIE总线,通过PES12T3G2交换机扩展出2个接口,连接高速航空总线模块,实现了显示器与其他机载设备的高速数据交互;采用RapidIO总线,通过TSI578交换机扩展出3个端口,将显示器内部模块组网,实现了背板总线快速通信。经验证,本通信系统具有传输数据带宽大、传输速率快等优点,完全能够满足机载座舱大屏幕显示器外部和内部数据实时通信的应用需求。

Abstract: As the requirement of high speed data communication in Cockpit large-screen display system cannot be satisfied by the traditional low speed aviation bus, a kind of communication system based on MPC8548E is presented. In the system, PCIE bus is connected with the high speed aviation bus modules through two extension interfaces from PES12T3G2 switch to realize a high speed data exchange between the display and the other systems. The modules in the display are connected through RapidIO bus with three extension ports from TSI578 switch, which guarantees the high communication performance of the display backboard bus.

The experiments are performed to validate the performance of the communication system. The system has a property of high bandwidth and high transmission speed, which satisfies the communication requirement of the Cockpit large-screen display system.

作者:张锋,常晨晨,曹峰,钟海林

显示器是飞行员获取飞机姿态导航信息、任务信息和战场态势的关键设备[1]。随着座舱显示控制系统的发展,座舱集成化程度越来越高,显示器则是向紧凑型、集成型方向发展[2],需要显示的信息量也在不断增大[3],大屏幕显示器逐渐成为机载显示器发展的主要方向。国外研究结果表明,大面积、高分辨率的大屏幕显示器图像能显著提升飞行员的反应时间[4],显示器图像信息显示速度对飞行员实时判断和决策起着至关重要的作用。制约图像信息显示速度的主要因素是图形显示系统处理能力以及通信系统数据处理传输能力。目前国内机载显示器图形显示系统普遍采用专用图形处理芯片,处理能力大幅度提升,完全能够满足图形实时绘制要求。然而通信系统仍采用如HB6096、Arinc429等传统低速总线接口,已成为制约信息显示速度的关键因素。一方面,大屏幕显示器显示内容非常丰富,与其他机载设备交互的数据量大幅度增加;另一方面,大量航空总线数据需要在显示器内部实时传递,对通信总线的带宽和传输速度的要求不断提高。显然,机载显示器需要更高速的通信系统来满足这些需求。

MPC8548E是美国飞思卡尔公司推出的第三代PowerPC处理器,具有PCIE和RapidIO两种高速串行总线接口[5]。其中PCIE总线接口主要用于挂接高速通信模块,随着计算机和应用系统接口速率的提升,PCIE越来越明显地体现出其在高速数据采集和传输系统中应用的优越性[6]。接口支持x1、x4、x8等模式,通信带宽分别可达2.5 Gb/s、10 Gb/s、20 Gb/s。RapidIO总线接口主要用于背板总线的高速数据通信,在工业领域有着广泛的应用。接口支持x1和x4模式,通信带宽分别可达3.125 Gb/s和12.5 Gb/s。

本文提出一种基于MPC8548E的机载显示器通信系统,使用MPC8548E内部集成的PCIE和RapidIO总线接口,分别通过相应的交换机进行多端口扩展,实现显示器外部数据高速通信和内部模块间高速组网互联,可以满足大屏幕一体化显示器高实时性通信的需求。

1 系统设计

机载显示器通信系统是一种实时嵌入式系统,需要快速响应外界的突发事件,且响应时间是确定的、可预测的[7]。所以系统设计上核心处理器选用高性能高可靠性的MPC8548E,操作系统选用高可靠性、高实时性的VxWorks6.6。