>
首页 » 技术文章 » VxWorks体系下PowerPC860处理器串行总线设计

VxWorks体系下PowerPC860处理器串行总线设计

作者:中国航空工业第二集团公司北京维思韦尔航空电子技术有限公司   刘阁  时间:2006-12-18 13:23  来源:本站原创

摘 要:本文具体介绍了PowerPC860处理器在VxWorks环境体系下,串行总线的软硬件设计方案,结合860处理器的外围接口特点,分别描述了双串行总线和多串行总线的实现方法。
关键词:VxWorks;Power PC860处理器;16C554

PowerPC系列的MPC860处理器作为业内较具有代表性的32位专用通信处理器一直被广大电子设计师所青睐。MPC860依靠其自身2个SMC串行管理控制部件和4个串行通信控制部件SCC成为一款被广泛应用于航空、通信领域的PowerPC系列处理器。从8240以后的PowerPC系列处理器在CPM(通信处理模块)的基础上开始嵌入了PCI的北桥芯片。
本文结合实际工作经验详细介绍了PowerPC860处理器串行总线的设计。

复位监控电路的设计
使用VxWorks的860处理器从上电正常启动到完成程序内核加载大约需要4s,而一般复位监控电路的溢出时间大约是1s。本文结合设计成果介绍了一种利用硬件逻辑电路产生监控电路清零信号(即看门狗信号WDI)的设计方法,其原理图如图1所示。


图1 复位监控电路原理框图


首先利用板上原有的晶振作为时钟源,分频产生一个占空比1:1的矩形方波,根据实际860处理器系统启动延时推算,方波的脉宽约为6s。利用这个选通信号分时输出MAX691监控电路的看门狗信号。高电平阶段输出引入的晶振时钟信号, 低电平阶段输出一个SCC使能信号,作为MAX691的看门狗信号输出。根据芯片手册,MAX691监控电路默认复位的时间间隔是1.6s。故两个信号完全满足作为看门狗信号的要求。测试结果证明:当860系统发生瘫痪的时候,SCC一定无法产生数据通信使能信号,这时会造成在一个相对比较长的时间里面无法正常输出看门狗信号使MAX691内部时钟清零复位。从而导致691超时溢出,PRORESET引脚自动产生下降沿的复位信号,最终达到引起860处理器自动复位的效果。
整个功能均由电路板上的可编程逻辑器件实现,没有占用860处理器的I/O引脚,经过长时间加电证明,运行效果良好。其逻辑语言描述如下:
DIV_FREQ: DIV_FREG_COUNTER port map(5MHZ,SWITCH_NODE);
file://分频电路模块
process(5MHZ)
begin
if SWITCH_NODE ='1' then
WDI<=5MHZ;
else
WDI<=SCC_ENABLE;
end if;
end process;//选通看门狗输出电路进程

SCC和SMC的软件设计
VxWorks环境下PPC860SCC_ CHAN是一个非常重要的数据结构,在TORNADO2.2安装路径的\Tornado2.2\target\h\drv\
sio\PPC860SIO.H文件下,工程师可以找到很多关于860低层驱动开发的定义信息。
typedef struct ppc860Scc_chan
file://PPC860SCC_CHAN 数据结构定义{
SIO_DRV_FUNCS *pDrvFuncs;
file://设备函数声明
void *getTxArg;//发送字符指针 void *putRcvArg;//接收字符指针
VINT16 int_vec;//SCC中断向量号
VINT16 channelMode;//SIO模式定义
intbaudRate;// 波特率定义
intclockRate;// 定义860处理器系统时钟
intbgrNum;//设定SCC设备应用哪个BRG波特发生器
SCC_UART_DEV uart;
file://UART 设备规定了串口寄存器和缓冲基地址、大小等
} PPC860SCC_CHAN;
SMC的初始化大致与SCC类似。工程师参考BSP中的sysSerial.c文件也可以完成。这里以SCC3为例进行程序初始化描述,如下所示:
void SerialScc3HwInit (void){
char devName [15];
ppc860SccChan.clockRate = 40000000;//系统时钟40MHz
......//得到配置基地址
ppc860SccChan.bgrNum = 3;//使用BGR2作为波特发生器
......
file://根据用户自己的硬件设置设备发送、接收的缓存区基地址
ppc860SccChan.uart.txBufBase = (unsigned char *)
(MPC860_DPRAM_BASE
(ppc860SccChan.regBase) + TX_BUFFER_SCC3);
ppc860SccChan.uart.rxBufBase = (unsigned char *)
(MPC860_DPRAM_BASE
(ppc860SccChan.regBase) + RX_BUFFER_SCC3);//用户修改发送、接收缓冲区的大小
ppc860SccChan.uart.pSccReg=
(SCC_REG*)((UINT32)
MPC860_GSMR_L3
(ppc860SccChan.regBase));
// GSMR串口模式配置
......
file://正确配置SCC3作为串口所用到的I/O引脚
ppc860SccDevInit(&ppc860
SccChan);
(void)intConnect(IV_SCC3,
(VOIDFUNCPTR)ppc860SccInt,(int) &ppc860SccChan);//中断入口声明
sprintf (devName, "%s%d", "/tyCo/", 3);// 形成TTY文件名称
(void) ttyDevCreate (devName, (SIO_CHAN *) &ppc860SccChan, 512, 512);//以TTY设备形式对SCC3进行操作
}
应用以上函数的编程结构如下:
SerialScc3HwInit();// SCC3 硬件初始化
fd=open("/tyCo/3",O_RDWR,0);//以文件形式打开SCC3得到文件ID,而后正确配置串口信息
{
if( TURE= = read( fd,&recbyte,1 ) )//等待读取接收一个字节
{write( fd, &recbyte, 1 ); file://将接收到的字节发送出去}
}


图2 多串口电路原理图

860多路串行总线设计
TI公司的16C554是一款被广泛使用的处理器扩展多路串行总线的集成芯片,芯片可以扩展出4路标准串行总线信号。860处理器与16C554的电路连接关系如图2所示。860在小端模式下,数据总线的低8位用于数据传输,利用CS5片选引脚和高位A25、A26地址线构成逻辑,对通道进行选择。为了便于理解,译码的地址分配方法如下:
首先,CS5片选的基地址主要是在BSP的config.h、romInit.s、syslib.c等文件中设置完成。读写信号IOW、IOR由CS片选和RD/WR逻辑信号共同形成。然后,假设860对外寻址时CS5的基地址设置是0x50000000,则选中通道A基地址:0x50000000+0x00;通道B基地址:0x50000000+0x40;通道C基地址:0x50000000+0x60;通道D基地址:0x50000000+0x20。最后,把INTA、INTB、INTC和INTD分别接入860的外部中断IRQ4、IRQ5、IRQ6和IRQ7。参考ppc860Intr.h文件正确配置860的中断入口向量和优先级,然后接入中断。根据通道基地址参照16C554的器件手册对各个串口进行初始化,举例如下:
#define 16554A_BASE_ADDR CS5_BASE_ADDRESS +0x00;
#define 16554B_BASE_ADDR CS5_BASE_ADDRESS +0x40;
16C554通道A初始化程序,如下所示:
void Serialport _initA() {
UCHAR address_p=16554A_ BASE_ADDR;
// 通道A的基地址
* (address_p +3) = 0x0B;//字节控制寄存器 8 bit 字段,1 bit停止位 采用奇校验
*( address_p +2) = 0x87;//中断寄存器FIFO使能,非中断
*( address_p +3) = 0x8B;//设置波特率为38400baud/s
......
intEnable(4);// IRQ4中断使能打开
}
综上所述,16C554的其他3路串行总线的实现完全与通道A的实现方式一致,工程师可参考以上模式编程。■

参考文献:
1 MPC860UM.pdf.http://www.freesacle.com网站
2 [美]Windriver.VxWorks BSP开发人员指南. 清华大学出版社
3 周启平.VxWorks设备驱动程序及BSP开发指南. 中国电力出版社
4 陈晓竹.PowerPC860嵌入式系统及应用. 机械工业出版社
5 罗国庆.VxWorks与嵌入式软件开发.机械工业出版社

相关推荐

Power Integrations完成收购CT-Concept Technologie AG

Power  Integrations  电源转换  2012-05-10

Picor新产品Cool-Power PI3106隔离型DC-DC转换器

风河宣布对于未来机载性能环境联合体的承诺

风河  嵌入式  VxWorks  2012-02-29

Power Integrations将销售SiC二极管和JFET

Power  Integrations  SiC二极管  JFET  2011-11-30

基于Windows平台VxWorks交叉编译工具的设计

VxWorks  嵌入式  2011-09-05

嵌入式系统U盘实时启动技术

VxWorks  嵌入式系统  2011-09-01
在线研讨会
焦点