CN109597651B - 一种基于mpc7410处理器的串口和网口模块开发方法 - Google Patents

一种基于mpc7410处理器的串口和网口模块开发方法 Download PDF

Info

Publication number
CN109597651B
CN109597651B CN201811187939.8A CN201811187939A CN109597651B CN 109597651 B CN109597651 B CN 109597651B CN 201811187939 A CN201811187939 A CN 201811187939A CN 109597651 B CN109597651 B CN 109597651B
Authority
CN
China
Prior art keywords
network
serial
serial port
port
drive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811187939.8A
Other languages
English (en)
Other versions
CN109597651A (zh
Inventor
郑永龙
周勇军
姚旭成
张子明
李珊珊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Run Wuhu Machinery Factory
Original Assignee
State Run Wuhu Machinery Factory
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Run Wuhu Machinery Factory filed Critical State Run Wuhu Machinery Factory
Priority to CN201811187939.8A priority Critical patent/CN109597651B/zh
Publication of CN109597651A publication Critical patent/CN109597651A/zh
Application granted granted Critical
Publication of CN109597651B publication Critical patent/CN109597651B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明涉及一种基于MPC7410处理器的串口和网口模块开发方法,串口模块的开发方法包括:采用NSC16C552芯片,挂接在Tsi107内存控制器的低8位;设计串口接口电路;开发串口驱动程序结构,VxWorks中串行设备支持I/O系统和目标机代理接口,工作在中断方式或轮询模式;创建串口tty驱动;ttyDevCreate()分配并初始化设备描述结构,初始化tyLib;开发串口底层驱动。网口模块的开发方法包括:设计网口接口电路;开发网口驱动程序结构;创建网络MUX,网络协议层和网络驱动接口根据需要使用MUX接口函数,使用时填入正确的参数;开发网口底层驱动;设计网口驱动全过程。本发明给出了基于MPC7410处理器的串口和网口模块开发方法,对于后续新机带VxWorks系统的PowerPC处理器板的测试与修理提供技术支撑。

Description

一种基于MPC7410处理器的串口和网口模块开发方法
技术领域
本发明涉及串口网口开发技术领域,具体的说是一种基于MPC7410处理器的串口和网口模块开发方法。
背景技术
目前,有关基于MPC7410处理器的串口和网口模块开发方法较少。经国内外现有文献资料检索,尚属空白。
长期以来,工厂承修的各类机型飞机的含处理器电路板处理器主要集中在DSP(包括TMS320F2407、TMS320VC5416以及TMS320VC6713系列TI公司DSP)、80CX86(包括80C186、80486处理器)、FPGA(包括EPM7128等)以及CPLD(包括XC95144等)等,基于PowerPC处理器的系统板是目前新机机载计算机的典型系统。随着后续新机型飞机陆续进厂,其中含PowerPC处理器的航电产品修理数量将逐年呈上升趋势。为了系统掌握这类产品的检测与深度修理能力,迫切需要加强这方面的技术储备。
发明内容
为了避免和解决上述技术问题,本发明提出了一种基于MPC7410处理器的串口和网口模块开发方法。
本发明所要解决的技术问题采用以下技术方案来实现:
一种基于MPC7410处理器的串口和网口模块开发方法,包括串口模块的开发方法、网口模块的开发方法;
所述串口模块的开发方法包括以下步骤:
步骤S101:采用NSC16C552芯片,挂接在Tsi107内存控制器的低8位;
步骤S102:设计串口接口电路;
步骤S103:开发串口驱动程序结构,VxWorks中串行设备支持I/O系统和目标机代理接口,工作在中断方式或轮询模式;
步骤S104:创建串口tty驱动,在usrRoot()完成创建tty驱动,调用ttyDrv()向I/O子系统注册串行驱动,初始化tty驱动;ttyDevCreate()分配并初始化设备描述结构,初始化tyLib;
步骤S105:开发串口底层驱动,以针对具体目标系统和串行设备的真实驱动程序,完成实际硬件设备的初始化和读写操作;
所述网口模块的开发方法包括以下步骤:
步骤S201:设计网口接口电路,所述网口接口电路包括GD82559ER芯片、网络隔离变压器和RJ45;
步骤S202:开发网口驱动程序结构,VxWorks支持网络驱动包括BSD型驱动和END驱动;
步骤S203:创建网络MUX,MUX层类似串口的tty中间层作用,网络协议层和网络驱动接口根据需要使用MUX接口函数,使用时填入正确的参数;
步骤S204:开发网口底层驱动,所述网口底层驱动是目标系统与网络设备的真实驱动程序,完成设备的初始化和读写操作;
步骤S205:设计网口驱动全过程,以获得网口以及其它外设驱动正常使用所需的内存空间。
进一步的,所述步骤S102中设计串口接口电路包括:
串口地址数据线挂接在107桥控制器Memory接口;
片选由107的RCS1提供,内存空间0xFF00_0000–FF7F_FFFF范围内;
串口线由RXA、TXA和GND组成连接上位机等其他外部通讯设备。
进一步的,所述步骤S104中tty层函数调用关系包括:
write()函数调用过程:write()—tyWrite()—底层驱动,tyWrite()将用户缓冲读数据写到输出环形缓冲,调用ns16552TxStartup()启动发送,底层驱动从输出缓冲读数据,再完成发送;
read()函数调用过程:read()—tyRead()—底层驱动,底层驱动将设备读到的字符写入输入环形缓冲,从环形缓冲读数据到用户缓冲中。
进一步的,所述步骤S104中底层驱动文件包括:
sysSerial.c:系统初始化串口时调用的内核接口文件;
ns16552Sio.h:串口驱动头文件,用于完成串口芯片寄存器声明、定义寄存器联合体和NS16552_CHAN数据结构;
ns16552Sio.c:串口驱动文件,实现串口芯片的初始化和数据处理功能。
进一步的,所述步骤S201中GD82559ER芯片包括:串行子系统、FIFO子系统、10/100Mbps串行CSMA/CD单元、10/100Mbps物理层。
进一步的,所述步骤S204中网口底层驱动的驱动文件包括:
configNet.h:为声明网络设备和定义END_OBJ类型FEI_LOAD_FUNC结构;
sysFei82559End.c:完成网络驱动加载和工作模式相关配置工作;
fei82559End.h:定义网口芯片寄存器、命令设置和接收发送对应的帧描述符。
进一步的,所述步骤S205中网口驱动全过程包括四个环节:系统自动探测并配置、网口硬件探测、驱动程序加载、设备启动。
本发明的有益效果是:
本发明给出了基于MPC7410处理器的串口和网口模块开发方法,对于后续新机带VxWorks系统的PowerPC处理器板的测试与修理提供技术支撑,可满足后续新机含VxWorks系统的PowerPC处理器板深修的需要,为整板功能调试奠定基础,也为后续类似板件维修提供技术支撑。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1为本发明中串口模块的开发方法流程图;
图2为本发明中网口模块的开发方法流程图;
图3为本发明中VxWorks串行设备驱动结构层次;
图4为本发明中tty层函数调用关系图;
图5为本发明中sysSerial.c的串口初始化流程图;
图6为本发明中串口读写处理函数流程图一;
图7为本发明中串口读写处理函数流程图二;
图8为本发明中VxWorks网络设备驱动结构层次图;
图9为本发明中网口初始化流程图;
图10为本发明中网口数据接收流程图;
图11为本发明中网口数据发送流程图;
图12为本发明中fei82559EndLoad总流程图;
图13为环节一流程示意图;
图14为环节三流程示意图;
图15为环节四流程示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面对本发明进一步阐述。
如图1至图15所示,一种基于MPC7410处理器的串口和网口模块开发方法,包括串口模块的开发方法、网口模块的开发方法;
所述串口模块的开发方法包括以下步骤:
步骤S101:串口模块采用NSC16C552芯片,挂接在Tsi107内存控制器的低8位;串口主要用作系统引导、启动和运行过程中输出打印信息和输入指令交互的控制台。
步骤S102:设计串口接口电路;
所述步骤S102中设计串口接口电路包括:
1、串口地址数据线挂接在107桥控制器Memory接口,地址接法参照107用户手册6.4,特别注意数据线接法顺序是反接的;
2、片选由107的RCS1提供,内存空间0xFF00_0000–FF7F_FFFF范围内;
3、串口线由RXA、TXA和GND组成连接上位机等其他外部通讯设备。
步骤S103:开发串口驱动程序结构;
VxWorks中串行设备支持I/O系统和目标机代理接口,工作在中断方式或轮询模式。
串行设备驱动包括:系统I/O库(ioLib)、tty驱动(ttyDrv/tyLib),其中ttyDrv是I/O系统与真实驱动程序之间的通用接口。串口tty驱动使I/O系统独立于具体的串行驱动,保证了代码的可复用和统一界面。
如图3为VxWorks串行设备驱动结构层次,I/O系统与tty驱动和tyLib相连,且tty驱动和tyLib进行数据交互,tty驱动和tyLib连接串口驱动程序,串口驱动程序连接串口硬件。
步骤S104:创建串口tty驱动;
在usrRoot()完成创建tty驱动,调用ttyDrv()向I/O子系统注册串行驱动,初始化tty驱动;ttyDevCreate()分配并初始化设备描述结构,初始化tyLib;
其中,如图4,tty层函数调用关系包括:
write()函数调用过程:write()—tyWrite()—底层驱动,tyWrite()将用户缓冲读数据写到输出环形缓冲,调用ns16552TxStartup()启动发送,底层驱动从输出缓冲读数据,再完成发送;
read()函数调用过程:read()—tyRead()—底层驱动,底层驱动将设备读到的字符写入输入环形缓冲,从环形缓冲读数据到用户缓冲中。
步骤S105:开发串口底层驱动;
底层驱动是针对具体目标系统和串行设备的真实驱动程序,完成实际硬件设备的初始化和读写操作;底层驱动文件包括:
sysSerial.c:系统初始化串口时调用的内核接口文件,可参见表1;
表1 sysSerial.c内部构成
函数名 说明
NS16552_CHAN_PARAS 定义串口设备参数结构
sysSerialHwInit() 初始化串口各参数
sysSerialHwInit2() 连接串行设备中断
sysSerialHwReset() 复位串行设备
sysSerialChanGet() 获取一个串行设备
其中,sysSerial.c的串口初始化流程如图5,具体过程为:
开始;将串口各相关参数在配置文件中设定完成,系统上电usrInit(),调用sysHwInit();sysHwInit()调用和sysSerialHwInit(),ns16550DevInit()初始化;usrRoot()调用和sysClkConnect();sysHwInit2()系统中断;sysSerialHwInit2()串行中断;usrRoot()调用和ttyDrv()初始化驱动;ttyDevCreate()创建串口;ns16550Sio.c串口处理函数;结束。
ns16552Sio.h:串口驱动头文件,用于完成串口芯片寄存器声明、定义寄存器联合体和NS16552_CHAN数据结构;
ns16552Sio.c:串口驱动文件,实现串口芯片的初始化和数据处理功能,可参见表2、表3;
表2串口设备宏定义
函数名 说明
N_SIO_CHANNELS 定义串行I/O设备通道数目为1
COM1_BASE_ADR 定义COM1端口基地址
COM1_INT_LVL 设置串行中断级为4
DEFAULT_BAUD_RATE 串口默认波特率为9600
CONSOLE_TTY 定义本端口为控制台通道
表3 ns16552Sio.c内部构成
函数名 说明
ns16552SioDrvFuncs 定义串口驱动功能数据结构
ns16552Ioctl() 设置串口各配置控制参数
ns16552IntWr() 中断方式发送
ns16552IntRd() 中断方式接收
ns16552Int() 中断处理
ns16552TxStartup() 启动发送
ns16552PollOutput() 轮询方式发送
ns16552PollInput() 轮询方式接收
ns16552CallbackInstall() 被tty层调用,提供接口函数
串口处理函数包括启动发送函数ns16552TxStartup()、串口中断读写函数ns16552IntRd()和ns16552IntWr()以及ns16552PollOutput()和ns16552PollInput()。串口读写处理函数流程图具体见图6、7,其中;
图6的过程为:开始;查询线路状态地址寄存器LSR;发送保持寄存器为空;否,则返回开始步骤;是,则数据写入发送保持寄存器THR;过程结束。
图7的过程为:开始;查询线路状态地址寄存器LSR;数据是否准备好;否,则返回开始步骤;是,则读取接收缓冲寄存器RBR,过程结束。
所述网口模块的开发方法包括以下步骤:
网口部分的设计基于Tsi107控制的本地PCI总线,网口主要用于下载VxWorks系统镜像以及数据通信。
步骤S201:设计网口接口电路,所述网口接口电路包括GD82559ER芯片、网络隔离变压器和RJ45;
其中GD82559ER是一个高集成度、高性能、低功耗10/100Mbps快速以太网控制器;GD82559ER由四个主要子系统构成:串行子系统、FIFO子系统、10/100Mbps串行CSMA/CD(带冲突检测的载波监听多路访问)单元、10/100Mbps物理层。
网口AD[0:31]地址数据复用连接107PCI接口信号,CLK是PCI接口时钟,由107的PCI_CLK0提供33MHz。
步骤S202:开发网口驱动程序结构,VxWorks支持网络驱动包括BSD型驱动和END驱动;
END主要特点是增加了管理END设备的MUX中间层模块。MUX层管理着I/O系统与真实驱动程序之间的通信,内核启动时MUX提供接口函数;本设计使用END驱动。
参见图8为VxWorks网络设备驱动结构层次图,具体包括:应用层、Socket、协议层、协议驱动程序、MUX接口、END网口驱动程序、网口硬件。
步骤S203:创建网络MUX,MUX层类似串口的tty中间层作用,网络协议层和网络驱动接口根据需要使用MUX接口函数,使用时填入正确的参数;
步骤S204:开发网口底层驱动,所述网口底层驱动是目标系统与网络设备的真实驱动程序,完成设备的初始化和读写操作;
其中网口底层驱动的驱动文件包括:
configNet.h:为声明网络设备和定义END_OBJ类型FEI_LOAD_FUNC结构;首先需要定义FEI82559_LOAD_FUNC为外部接口函数sysFei82559EndLoad。sysNet.c定义sysNetHwInit()以及连接网络设备中断等。
sysFei82559End.c:完成网络驱动加载和工作模式相关配置工作;查找文件中定义的Intel系列的网卡的厂商号和设备号代码段,实现对Inte182559ER网卡的支持。
fei82559End.h:定义网口芯片寄存器、命令设置和接收发送对应的帧描述符;fei82559End.c包括初始化函数、网口启动函数和数据处理函数。
其中,fei82559Endload()是对82559芯片完成初始化工作:(1)自定义结构分配;(2)END_OBJ初始化;(3)网口驱动资源分配;(4)设备硬件初始化,fei82557Start()启动网口进入工作状态。
初始化流程参见图9,具体为:开始;网口各相应参数在配置文件中设定完成;系统上电usrRoot(),调用sysClkConnect();sysHwInit2()调用sysNetHwInit2()网络初始化;sys559PciInit()函数调用,设备查找函数pciFindDevice();根据总线号、设备号和功能号遍历查找网卡pciConfigInLong()读取识别号;将busNo,deviceNo和funcNo写入107Config_ADD寄存器;读取107Config_DATA寄存器,sysMPC107PciInLong();用读取的数据和网卡识别号,对比确认找到设备;网卡PCI配置空间初始化;过程结束。
107作为系统的主桥,其PCI接口作为整个系统的本地总线接口,可以挂接PCI设备,包括网络设备和PCI桥设备,所有设备都连在107的PCI接口,各设备通过IDSEL连接AD[31:11]信号其中一个作为片选信号。
网口寄存器的访问方式与本地内存接口的SDRAM、FLASH等设备区别在于:
处理器访问PCI空间是通过107的两个端口寄存器间接实现的,当CPU访问MPC107的配置地址寄存器和配置数据寄存器(内存地址分别为0xFEC00000和0xFEE00000)时,MPC107会识别出这是对PCI配置空间的访问,将代CPU执行对PCI总线地址空间的操作,表4汇总了网口PCI配置相关寄存器。
表4网口PCI配置寄存器
Figure GDA0001971028000000081
PCI总线上每一个设备都有自身的/REQ和/GNT。请求允许之间的握手获得总线的访问权。/C_BE[3:0]信号定义PCI总线指令,决定PCI总线处理的类型(具体指令列表见107用户手册7.3.2)。
PCI数据传输控制信号:
/FRAME:有效表明PCI总线执行开始,否则处理结束;
/IRDY:有效表明PCI主设备准备好执行,否则等待;
/TRDY:有效表明PCI从设备准备好执行,否则等待。
PCI定义三种物理地址空间,PCI内存空间、PCII/O空间和PCI配置空间。对于内存空间寻址,107在主模式下AD[1:0]=00,每个数据周期结束后地址增加4bytes直到处理完成。
对于PCII/O空间访问,AD[31:0]提供1byte地址。对于PCI配置空间寻址有两种type0和type1类型。type0用于选择本地总线上的某一个设备,type1用于向PCI-to-PCI桥(下一级PCI总线)传递配置请求。
系统中PCI接口访问网口配置空间用type0型,访问9054配置空间用type1型。
网口处理函数包括发送函数fei82559Send()、接收函数fei82559Receive()、中断处理函数fei82557Int()以及fei82557PollSend()和fei82559Receive(),附图10、11为网口数据接收、发送流程图,其中;
图10具体过程为:设备;缓冲区;网络驱动ISR;经netJobAdd()到数据接收程序;经END_OBJ到receiveRtn()和muxReceive();经NET_PROTOCOL到网络协议;缓冲区;Read()。
图11具体过程为:设备;缓冲区;网络驱动ISR;数据发送程序和send();经NET_FUNCS到muxSend();网络协议;缓冲区;Write()。
步骤S205:设计网口驱动全过程,以获得网口以及其它外设驱动正常使用所需的内存空间。
系统运行需要内存空间,网口以及其它外设驱动正常使用需要内存空间作为物理基础,因此系统运行前必须完成内存分布。
sysLib.c中sysPhyMemDesc[]定义RAM空间的各项属性。BSP头文件中,RAM内存空间的相关定义。
#defineLOCAL_MEM_SIZE 0x08000000/*128Megabyte*/
#defineRAM_LOW_ADRS 0x00100000/*RAMtest/dataaddress*/
#defineRAM_HIGH_ADRS 0x01E00000/*RAM address forROMboot*/
#defineUSER_RESERVED_MEM 0x00800000/*userreservedmemory size*/
PCI空间属性:PCI non-prefetchable memory没有分界,由PCI设备自身决定所需是否为可预取空间属性。
Figure GDA0001971028000000101
注:网口启动后进行数据的接收发送任务。
上面列出了网口驱动全过程,包含四个主要环节。具体如下:
环节一:sysPciAutoConfig.c
1、107关于PCI的设置
sysMPC107PciInit
(1)PCICLK
(2)PCI信号驱动能力
(3)PICR1寄存器
(4)PCI仲裁控制
2、自动分配空间(pciAutoRegConfig)
pciConfigLibInit(PCI_MECHANISM_0,(ULONG)sysPciConfigRea,
(ULONG)sysPciConfigWrite,0);
sysPciAutoConfig():填写PCI_SYSTEM数据结构;
sysParams.pciMemIo32=PCI_PP_MEM_START
sysParams.pciMemIo32Size=PCI_PP_MEM_SIZE
pciConfigInLong(0,13,0,0x00,&ultmp)/*read dev 13*/
pciAutoCfgFunc
表5参数说明
Figure GDA0001971028000000111
环节二:
usrRoot→sysClkConnect→sysHwInit2→sysNetHwInit2→sys557PciInit:
(1)pciFindDevice:遍历查找读取设备,pciConfiglong(0,12,0,0x00,&vendor)
(2)将读取设备的参数写入pReso结构体,包括设备总线号、设备号、功能号,三个基址和中断号
(3)使能Mem、IO地址空间.PCI_CFG_COMMAND
(4)连接系统中断
sys557PciInit pReso的赋值
membaseCsr=0x8000_1000
iobaseCsr=0x0080_0000
membaseFlash=0x8010_0000
注:modify函数可以修改网口寄存器中BAR的基址内容。
Irq 13置1 12置0
其中读取网口寄存器的基址pciConfigInLong。
环节三:fei82559Endload(1-16子程序)
图12为fei82559EndLoad总流程图,具体过程为;
开始;
1、给设备结构分配空间,calloc(sizeof(DRV_CTRL),1);
2、解析字符串,fei82557InitParse(pDrvCtrl,initString);
3、pDrvCtrl->board信息结构体;
sys557Init(pDrvCtrl->unit,&pDrvCtrl->board);
4、定义网口寄存器基址,pCSR=(CSR_ID)pDrvCtrl-board.baseAddr;
5、检测网口寄存器内存空间是否分配完成vxMemProbe();
6、网口DMA初始化,fei82557InitMem(pDrvCtrl);
7、关中断,I82557_INT_DISABLE(SCB_C_M);
8、物理层初始化,fei82557PhyInit(pDrvCtrl);
9、网口时钟连接,fei82557ClkRate=sysClkRateGet();
10、wdCreate()创建一个系统看门狗;
pDrvCtrl->txRetryWDld=wdCreate();
11、复位芯片fei82557Reset(pDrvCtrl),
写入复位命令FEI_PORT_SELRESET;
12、执行CU、RU加载命令fei82557SCBCommand();
13、添加网口硬件地址bcopy(pDrvCtrl->board.enetAddr,enetAddr[0]);
14、endObj初始化,END_OBJ_INIT;
15、管理信息库MBI接口初始化,END_MIB_INIT;
16、设备使能准备,END_OBJ_READY;结束。
环节四:fei82559Start
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (7)

1.一种基于MPC7410处理器的串口和网口模块开发方法,其特征在于:包括串口模块的开发方法、网口模块的开发方法;
所述串口模块的开发方法包括以下步骤:
步骤S101:采用NSC16C552芯片,挂接在Tsi 107内存控制器的低8位;
步骤S102:设计串口接口电路;
步骤S103:开发串口驱动程序结构,VxWorks中串行设备支持I/O系统和目标机代理接口,工作在中断方式或轮询模式;
步骤S104:创建串口tty驱动,在usrRoot()完成创建tty驱动,调用ttyDrv()向I/O子系统注册串行驱动,初始化tty驱动;ttyDevCreate()分配并初始化设备描述结构,初始化tyLib;
步骤S105:开发串口底层驱动,以针对具体目标系统和串行设备的真实驱动程序,完成实际硬件设备的初始化和读写操作;
所述网口模块的开发方法包括以下步骤:
步骤S201:设计网口接口电路,所述网口接口电路包括GD82559ER芯片、网络隔离变压器和RJ45;
步骤S202:开发网口驱动程序结构,VxWorks支持网络驱动包括BSD型驱动和END驱动;
步骤S203:创建网络MUX,MUX层类似串口的tty中间层作用,网络协议层和网络驱动接口根据需要使用MUX接口函数,使用时填入正确的参数;
步骤S204:开发网口底层驱动,所述网口底层驱动是目标系统与网络设备的真实驱动程序,完成设备的初始化和读写操作;
步骤S205:设计网口驱动全过程,以获得网口以及其它外设驱动正常使用所需的内存空间。
2.根据权利要求1所述的一种基于MPC7410处理器的串口和网口模块开发方法,其特征在于:所述步骤S102中设计串口接口电路包括:
串口地址数据线挂接在107桥控制器Memory接口;
片选由107的RCS1提供,内存空间0xFF00_0000–FF7F_FFFF范围内;
串口线由RXA、TXA和GND组成连接上位机。
3.根据权利要求1所述的一种基于MPC7410处理器的串口和网口模块开发方法,其特征在于:所述步骤S104中tty层函数调用关系包括:
write()函数调用过程:write()—tyWrite()—底层驱动,tyWrite()将用户缓冲读数据写到输出环形缓冲,调用ns16552TxStartup()启动发送,底层驱动从输出缓冲读数据,再完成发送;
read()函数调用过程:read()—tyRead()—底层驱动,底层驱动将设备读到的字符写入输入环形缓冲,从环形缓冲读数据到用户缓冲中。
4.根据权利要求1所述的一种基于MPC7410处理器的串口和网口模块开发方法,其特征在于:所述步骤S104中底层驱动文件包括:
sysSerial.c:系统初始化串口时调用的内核接口文件;
ns16552Sio.h:串口驱动头文件,用于完成串口芯片寄存器声明、定义寄存器联合体和NS16552_CHAN数据结构;
ns16552Sio.c:串口驱动文件,实现串口芯片的初始化和数据处理功能。
5.根据权利要求1所述的一种基于MPC7410处理器的串口和网口模块开发方法,其特征在于:所述步骤S201中GD82559ER芯片包括:串行子系统、FIFO子系统、10/100Mbps串行CSMA/CD单元、10/100Mbps物理层。
6.根据权利要求1所述的一种基于MPC7410处理器的串口和网口模块开发方法,其特征在于:所述步骤S204中网口底层驱动的驱动文件包括:
configNet.h:为声明网络设备和定义END_OBJ类型FEI_LOAD_FUNC结构;
sysFei82559End.c:完成网络驱动加载和工作模式相关配置工作;
fei82559End.h:定义网口芯片寄存器、命令设置和接收发送对应的帧描述符。
7.根据权利要求1所述的一种基于MPC7410处理器的串口和网口模块开发方法,其特征在于:所述步骤S205中网口驱动全过程包括四个环节:系统自动探测并配置、网口硬件探测、驱动程序加载、设备启动。
CN201811187939.8A 2018-10-12 2018-10-12 一种基于mpc7410处理器的串口和网口模块开发方法 Active CN109597651B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811187939.8A CN109597651B (zh) 2018-10-12 2018-10-12 一种基于mpc7410处理器的串口和网口模块开发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811187939.8A CN109597651B (zh) 2018-10-12 2018-10-12 一种基于mpc7410处理器的串口和网口模块开发方法

Publications (2)

Publication Number Publication Date
CN109597651A CN109597651A (zh) 2019-04-09
CN109597651B true CN109597651B (zh) 2022-04-12

Family

ID=65957279

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811187939.8A Active CN109597651B (zh) 2018-10-12 2018-10-12 一种基于mpc7410处理器的串口和网口模块开发方法

Country Status (1)

Country Link
CN (1) CN109597651B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175139B (zh) * 2019-05-08 2021-01-05 厦门亿联网络技术股份有限公司 一种usb设备的通用调试方法及usb设备
CN110737480B (zh) * 2019-09-18 2022-05-13 瑞芯微电子股份有限公司 一种串口驱动程序复用方法和装置
CN111870939A (zh) * 2020-07-09 2020-11-03 天津津航计算技术研究所 vxworks系统下基于信号量事件的操纵杆串口驱动设计方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030097428A1 (en) * 2001-10-26 2003-05-22 Kambiz Afkhami Internet server appliance platform with flexible integrated suite of server resources and content delivery capabilities supporting continuous data flow demands and bursty demands
US20060002315A1 (en) * 2004-04-15 2006-01-05 Citrix Systems, Inc. Selectively sharing screen data
CN104679513A (zh) * 2015-02-12 2015-06-03 无锡识凌科技有限公司 一种智能终端中的设备驱动架构开发方法
CN107967236A (zh) * 2017-11-27 2018-04-27 国营芜湖机械厂 一种基于MPC7410处理器的VxWorks系统板及其软件设计方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030097428A1 (en) * 2001-10-26 2003-05-22 Kambiz Afkhami Internet server appliance platform with flexible integrated suite of server resources and content delivery capabilities supporting continuous data flow demands and bursty demands
US20060002315A1 (en) * 2004-04-15 2006-01-05 Citrix Systems, Inc. Selectively sharing screen data
CN104679513A (zh) * 2015-02-12 2015-06-03 无锡识凌科技有限公司 一种智能终端中的设备驱动架构开发方法
CN107967236A (zh) * 2017-11-27 2018-04-27 国营芜湖机械厂 一种基于MPC7410处理器的VxWorks系统板及其软件设计方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Design of the Master Control System of the Array Antenna Based on the VxWorks";Yu Yi.etc;《2011 Fourth International Conference on Intelligent Computation Technology and Automation》;20110415;第516-518页 *
"基于PowerPC7410处理器的VxWorks系统研究";聂敏;《中国优秀硕士学位论文全文数据库 (工程科技Ⅱ辑)》;20190215;C031-529 *
"基于PowerPC的嵌入式系统硬件设计";刘丽君等;《现代电子技术》;20080615;第251-253页 *
《基于MPC7410处理器的VxWorks系统板的研制》;聂敏等;《测控技术》;20180218;第155-160页 *

Also Published As

Publication number Publication date
CN109597651A (zh) 2019-04-09

Similar Documents

Publication Publication Date Title
US7062587B2 (en) Unidirectional bus architecture for SoC applications
US8473661B2 (en) System and method for providing multi-process protection using direct memory mapped control registers
KR970000842B1 (ko) 정보 처리 시스템 및 컴퓨터 시스템
US7877521B2 (en) Processing apparatus and method of modifying system configuration
US8327039B2 (en) Integrated DMA processor and PCI express switch for a hardware-based functional verification system
JP3302357B2 (ja) Cpuバス制御器
US6272584B1 (en) System board with consolidated EEPROM module
CN101593164B (zh) 基于嵌入式Linux的从USB HID装置及固件实现方法
CN109597651B (zh) 一种基于mpc7410处理器的串口和网口模块开发方法
US20090077297A1 (en) Method and system for dynamically reconfiguring PCIe-cardbus controllers
US5774681A (en) Method and apparatus for controlling a response timing of a target ready signal on a PCI bridge
EP1131732B1 (en) A direct memory access engine for supporting multiple virtual direct memory access channels
EP0595960A4 (en) Computer workstation expansion chassis
US20080059669A1 (en) Method and Apparatus for Enhancing Data Rate of Advanced Micro-Controller Bus Architecture
JPH11238030A (ja) Pci−pciブリッジおよびそのための先入れ先出しメモリ
US8775712B2 (en) Bus connecting device for connecting host with external device
CN112783818A (zh) 一种多核嵌入式系统的在线升级方法及系统
US6567881B1 (en) Method and apparatus for bridging a digital signal processor to a PCI bus
Ahmed et al. Design and implementation of a direct memory access controller for embedded applications
US6963947B2 (en) Driver supporting bridge method and apparatus
US5305442A (en) Generalized hierarchical architecture for bus adapters
US5878239A (en) Method and apparatus for processing a target retry from a PCI target device to an ISA master devise using a PCI/ISA bridge
US8527745B2 (en) Input/output device including a host interface for processing function level reset requests and updating a timer value corresponding to a time until application hardware registers associated with the function level reset requests are available
US5850529A (en) Method and apparatus for detecting a resource lock on a PCI bus
US6684284B1 (en) Control chipset, and data transaction method and signal transmission devices therefor

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant