关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > MPC860的HDLC通道驱动程序的设计与实现

MPC860的HDLC通道驱动程序的设计与实现

作者:时间:2010-01-13来源:网络收藏

  3 的设计思想及其实现
    这里选择VxWorks作为本CPU板的操作系统。VxWorks是美国风河系统公司推出的一种高性能、可裁减的实时嵌入式操作系统,以其良好的可靠性和卓越的实时性被广泛应用于通信、军事、航天等领域。因此,程序的设计必须按照这个操作系统的结构来构建。本文的主要目的是将处理器的一个SCC通道配置成为模式,以支持VxWorks操作系统下的通信,所以程序的设计主要围绕这个目的进行,在此并没有按照传统驱动的模式构建,而是直接对硬件进行操作。首先设置通道参数,将其配置成模式,然后设计基本功能函数。当运行时,首先要进行SCC通道的初始化以及存储区的初始化,然后才开始执行收发功能,在这当中要加上中断控制。按照这个程序的基本流程,具体的实现分为下面几步(在本设计中将SCC2配置成HDLC模式)。

本文引用地址:http://www.eepw.com.cn/article/202570.htm


  3.1 定义参数RAM
  

  参数RAM主要包括通道参数RAM和通道协议参数RAM两部分,SCC通道的主要参数都在这个里面配置。它们包含CPM RISC用来正确操作SCC通道的特定协议所用的信息。


  3.2 初始化SCC2
  (1)将的PA12、PA13引脚作为SCC2的收发引脚。
  (2)有四个BGR和八个外部时钟引脚,将SCC的收发时钟分别配置成内部时钟和外部时钟。
  (3)将SCC2配置为NMSI模式。
  (4)初始化SDCR寄存器,给予SDMA一个仲裁ID以提供U总线上的优先级。
  (5)初始化SCC2的参数RAM(这步对所有的协议都是通用的):
  ①设置Rx/TxBD 表的基址相对于双端口RAM的偏移量;
  ②设置收发缓冲区描述符表基址相对于IMMR寄存器中值的偏移量;
  ③设置Rx/Tx 的函数代码;
  ④在MRBLR中设置接收缓存的最大空间。
  (6)针对SCC2的HDLC模式进行初始化;
  ①通过C_MASK和C_PRES 设置CCITT-CRC;
  ②对CPM维护的五个计数器DISFC、CRCEC、 ABTSC、 NMARC和RETRC清零;
  ③在MFLR中定义最大帧长度,通常定义为0x0100,表示最大帧长度为256字节;
  ④在RFTHR中定义接收到多少个HDLC帧时产生一个中断申请,当将RFTHR置位0x0001时,表示每接收到一个帧产生一个中断申请;
  ⑤设置接收地址,hmask用来定义地址掩码,当hmsk=0x0000时,表示接收所有帧。



关键词: HDLC MPC 860 驱动程序

评论


相关推荐

技术专区

关闭