接口技术-基于MPC860 PCMCIA的双以太网接口驱动设计

合集下载

基于MPC8280的PCI驱动设计

基于MPC8280的PCI驱动设计


要 芯片 M P C 8 2 8 0的主频最高为 4 5 0 M H z , 仅 靠运 行在 其上的软件虽可 实现路 由交换功能 ,但交换容量仅 约
为4 0 Mb i t ・ s 一,无法满足 多路千兆 交换性能要 求。利 用 MP C 8 2 8 0的 P C I口外接 千 兆交换芯 片 B C M5 6 5 1 4,能 突破 这
Hale Waihona Puke 近年来 , 多媒 体通 信技 术应 用 迅 猛发 展 , 对 网速 的 要求也迅速提 升。为适应 这一趋 势 , 与 网络相 关 的终端
B C M5 6 5 1 4实 现 , 可 突破性能瓶颈。完成 P C I 驱 动 设 计 是这 一方法 能 得 以实 施 的先 决条 件 , M P C 8 2 8 0通 过 P C I内存 空 间读 写 操 作 、 配置 空 间 读 写操 作 和 I / 0 空 间读写 操作 , 实现 对交 换芯 片 的配置 、 控制 及路 由表 的 更新 , 从 而使 M P C 8 2 8 0在大 容量 路 由交 换 领域 得 到 成
a 叶技2 0 1 4 年 第 2 7 卷 第 5 期
E l e c t r o n i c S c i . &T e c h . / Ma y . 1 5. 2 0 1 4
基 于 MP C 8 2 8 0的 P C I 驱 动设 计
王 敏
( 广州海格通信集 团股份有 限公 司 网通 分公 司 ,广东 广州 5 1 0 6 6 3 )
A De s i g n O f PCI Dr i v e r Ba s e d o n M PC8 2 8 0
W ANG Mi n
( B r a n c h o f N e t c o m,G u a n g z h o u H a i g C o m m u n i c a t i o n s G r o u p C o . ,L t d . ,G u a n g z h o u 5 1 0 6 6 3 ,C h i n a )

最新-基于PCI总线的双DSP系统及WDM驱动程序设计 精品

最新-基于PCI总线的双DSP系统及WDM驱动程序设计 精品

基于PCI总线的双DSP系统及WDM驱动程序设计摘要介绍了总线控制芯片2040的功能及内部结构,分析了基于总线的双通信的硬件结构及实现方法,并描述了利用2000开发设备驱动程序的方法及双通信驱动程序主要模块的设计方法和编程注意要点。

关键词总线2040公司专门推出了2040桥芯片是专门针对总线和接口用的,本文利用它和来处理视频信号,并用双端口实现之间的数据传输。

1硬件设计11总线控制芯片2040总线是一种不依附于某个具体处理器的局部总线,它支持32位或64位的总线宽度,频率通常是33,目前最快的20总线工作频率是66。

工作在33、32位时,理论上最大数据传输速率能达到133。

它支持猝发工作方式,提高了传输速度,支持即插即用,部件和驱动程序可以在各种不同的平台上运行[1]。

实现总线协议一般有两种方法,一是用设计实现,但协议比较复杂,因此难度较大;二是采用总线控制芯片,如公司的5933、公司的9080等通用的接口芯片。

公司专门推出了针对总线和接口的芯片2040[2],它不但实现了总线控制的功能,而且提供了和芯片无缝的接口,因而大大简化了系统设计的复杂度并缩短了开发时间。

2040是一个-桥接器件,它提供了局部总线和320548位主机接口与320616位主机接口的无缝连接。

一片2040最多能同时挂接4片芯片。

同时,它还提供了一个串行接口,一个通用输入输出接口和一个16位通用总线接口为测试总线控制器提供接口[2]。

2040只能作为目标设备使用,不能作为主设备使用;它只支持单字的读写,不能提供操作。

2040能够兼容33和533和5信号可以直接从插槽中获得。

2040和3206201的接口如图1所示。

122040寄存器说明2040桥256字节的配置头如图2所示,基地址、控制空间基地址值都是系统自动分配的。

32。

4片芯片的选择是通过解码_14、_13来实现的,其对应关系如表1所示。

而寄存器的地址则是由_12和_11来决定的,其对应关系如表2所示。

QMC协议驱动在MPC860T上的设计与实现

QMC协议驱动在MPC860T上的设计与实现

条逻辑通道的 S C可 以支持 多达 6 C 4条逻辑通道 , 而支持具有广泛应用的 El T 进  ̄ 1多时隙链路 。本文
阐述 了 MP 80 C 6 T的 S C接 口工 作 原 理 和 Q C MC协议 , 点研 究 了在 S C上 实现 Q 重 C MC协 议 的基 本 设 计 方 法 及 具 体 实 现 过程 , 并给 出 了主 要 功 能 函数 的 设 计 流 程 。
At xaiigu o h ok ahn f C sit aeadQ rt o,ti p prit d c h ai f r pt t p ntew rsm cieo S C ne c n MC po cl hs ae r u et b s ee an f r o no e c m t do ei i p m n t MCpooo i o e C n §i pe et gpoes a tel t egv e o f s nn t i l eth Q r cln n Ca di m lm ni r s. th s w i h d g gom e e t S t n c a e
o e lgc c a n lc n s p o p t 4 lgc c a n l ,t u p r b o d y u e / 1 mu t l n o i h n e a u p r u 6 o i h n es o s p o r a l s d El T l p e—t t o t i i me—so i k lt n . l
郭珍军 杨 正春 一 张 磊 一 张剑锋
G O Z e jn Y NGZ eg—cu Z A e Z A i fn U hn— u A hn h n H NGLi H NGJa eg n—
攀 酾 ≯ 串 通 控 器SC是M C 0 最 大 通 处 模 。 过 置Q C 议, 标 情况 只 持 行 信 制 Cs P8 T 强 的 信 理 块 通 配 M 协 使 准 下 支 6

基于X86及PCIE的MVB通信网卡设计

基于X86及PCIE的MVB通信网卡设计

0 引言目前,符合TCN标准的通信产品在铁路上已经得到广泛应用,该标准定义了两种用于列车车载数据通信的现场总线:绞线式列车总线(WTB)和多功能车辆总线(MVB)。

MVB总线将车厢内,即机车内、客车车辆内或货车车辆内的设备连在一起构成一个局域网。

其中,以基于PC/104架构的MVB通信设备应用最为广泛。

随着PCI总线技术向工业控制领域渗透,以支持热插拔操作为显著特征的PCI 总线的MVB通信设备拥有良好的应用前景。

PCI总线技术具有无法忽视的优点,如更高的总线频率、独立于处理器、支持突发读写传输、自动配置、支持自动的设备检测与配置及低功耗等。

PCI-Ex-press (PCIE)作为最新一代的总线接口,其点对点的串行设计以及双通道高带宽的传输模式,大大提高了数据的传输速率,它的广泛应用将全面取代PCI、AGP等总线。

本文设计了一种基于X86及PCIE 总线的MVB通信网卡,并完成软硬件设计开发。

1 MVB网卡硬件设计1.1 总体硬件架构MVB网卡硬件架构如图1所示,MVB网卡由现场可编程逻辑阵列FPGA和MVB物理接口单元两部分组成。

现场可编程逻辑阵列FPGA完成PCIE总线数据编解码、MVB数据帧收发以及PCIE 总线与MVB核之间的数据交互,MVB物理接口单元完成MVB数据的编解码(RS485格式)和符合IEC61375-1标准的TCN网络物理接入。

1.2 MVB接口单元设计MVB接口单元完成MVB差分信号隔离、RS485信号编解码和收发器控制,接口标准符合IEC61357-1协议。

接口单元硬件原理如图2所示,隔离变压器采用PULSE公司X-1729NL,RS485收发器采用MAX3088,LCDA05完成差分信号的过收稿日期:2019-12-12作者简介:宁寿辉(1973—),男,山东蓬莱人,硕士,正高级工程师,从事列车网络控制技术研究工作。

基于X86及PCIE 的MVB 通信网卡设计宁寿辉1,2 石小磊1,2(1.中车大连电力牵引研发中心有限公司,辽宁大连 116052;2.动车组和机车牵引与控制国家重点实验室,辽宁大连 116052)摘要:简要介绍多功能车辆总线(MVB )总线及PCIE总线的特点,给出了基于X86处理器、PCIE总线接口的MVB通信网卡的硬件架构及设计方法,MVB网卡驱动软件、通信软件设计开发流程。

MPC860_寄存器配置(中文)

MPC860_寄存器配置(中文)

MPC860寄存器配置1999.10 Rev 1.01 概述MPC860的系统接口单元(SIU )控制系统启动、初始化、运行、保护和外部系统总线。

这些功能是靠许多寄存器实现的。

这篇文档将详细说明各个寄存器的配置情况。

2 寄存器的配置按功能分类,可以将寄存器分为系统配置和保护寄存器、复位寄存器、时钟和电源寄存器、存储器控制器寄存器和PCMCIA 寄存器等。

下面分别说明配置情况。

2.1 系统配置和保护寄存器配置系统配置和保护寄存器包括IMMR 、SIUMCR 、SYPCR 、TESR 、SIPEND 、SIMASK 、SIEL 、SIVEC 、SWT 、SWSR 、DEC 、TBU 、TBL 、TBREFA 、TBREFB 、TBSCR 、RTCSC 、RTC 、RTCAL 、RTSEC 、PIT 、PISCR 、PITC 、PTTR 等,其中除了IMMR 、 SIUMCR 、SYPCR ,其它的暂不用进行配置。

2.1.1 Internal Memory Map Register (IMMR)IMMR 指示特殊设备和内部存储器映像的基地址,这是一个32位的寄存器,其中0~15bit 为基地址的值(ISB ),根据系统复位时配置字的值来定。

在本次设计中,ISB 的值置为0xFF00,表示内部存储器映像的基地址为0xFF000000。

2.1.2 SIU Module Configuration Register (SIUMCR)通过SIUMCR ,可以配置SIU 的以下功能: 外部总线仲裁 外部主机支持 调试口配置系统接口管脚配置 校验支持表2-1为SIUMCR 的配置说明。

表2-1 SIUMCR 配置说明 位名 称描 述配 置0 EARB 外部仲裁,根据复位配置字设置0 实行内部仲裁1 实行外部仲裁 0 没有外部仲裁1-3 EARP 外部仲裁请求优先级000 最低优先级111 最高优先级0004-7 保留00008 DSHWData show cycles 0 不显示 1 显示所有的内部数据周期0 但调试时可设为“1”9-10 DBGC 调试管脚配置,根据复位配置字设置 11 11-12 DBPC 调试口管脚配置,根据复位配置字设置 0013保留14 FRC 配置管脚FRZ/IRQ6的功能0 FRZ/IRQ6配置为FRZ1 FRZ/IRQ6配置为IRQ6 015 DLK锁住调试寄存器 0 复位时的状态1 8-15位被锁住,不再执行对这些位的写操作,当内部FRZ 信号有效时才可以写这些位 1 这些位由复位配置字决定,不需要改写16 OPAR 奇校验0 读内存时进行奇校验1 写内存时进行奇校验任意17 PNCS非存储器控制器区域的校验使能,可为不受存储器控制器控制的内存区域产生和检查校验位 0 没有不受存储器控制器控制的内存区域18 DPC 数据校验管脚配置0 DP[0-3]/IRQ[3-6]配置为IRQ[3-6]1 DP[0-3]/IRQ[3-6]配置为DP[0-3] 0 不需要数据校验19 MPRE 多处理器保留使能0 RSV/IRQ2配置为IRQ21 RSV/IRQ2配置为RSV 020-21 MLRC 多级保留控制00 KR/RETRY/IRQ4/SPKROUT 配置为 IRQ401 KR/RETRY/IRQ4/SPKROUT 配置为三态10 KR/RETRY/IRQ4/SPKROUT 配置为KR/RETRY 11 KR/RETRY/IRQ4/SPKROUT 配置为SPKROUT 0022 AEME外部异步主控制器使能0 存储器控制器忽略AS 信号的状态1 存储器控制器将AS 信号的有效解释为外部异步主控制器正在初始化一次transaction 023 SEME外部同步主控制器使能(同AEME )0 24 BSC 配置存储器控制器和PCMCIA 接口的字节选择信号0 25 GB5E GPL_B5使能0 BDIP 功能1 GPL_B5功能26 B2DD Bank 2 double drive ,如果置位,GPL_x2可配置为CS20 27 B3DD Bank 3 double drive ,如果置位,GPL_x3可配置为CS30 28-31 保留0000SIUMCR 的值配置为0x006100002.1.3 System Protection Control Register (SYPCR)SYPCR 控制系统监视器和总线监视器的时序。

翻译

翻译

台式机预报MPC860T / MPC860DT PowerQUICC技术总结摩托罗拉的MPC860的MPC860T延伸PowerQUICCTM嵌入式处理器家族。

这个新的衍品添加了一个10/100Mbps以太网MAC已经广泛的功能MPC860的。

MPC860 PowerQUICCTM 的家庭是针对各种控制器应用程序极为引人注目,特别是在通信和网络产品。

这个MPC860T,外加10/100Mbps以太网支持,解决了增加需要快速以太网在嵌入式应用程序。

专门从事局域网wan连接,这个MPC860T是理想的路由器和电信设备。

独特的架构的MPC860T使高度集成和性能。

下面将描述的主要街区——10/100Mbps以太网MAC——PowerPC核心提供87 MIPS在66 mhz——系统集成单元包括一个强大的内存控制器——通信处理器模块(CPM):一个强大的通讯模块和它的自己的32位微处理器RISC处理低层次的通信任务。

这段支持以下串行连接•4串行通信控制器(广泛性)在860吨;2 860 dt广泛性-高阶资料连结控制- QMC微码协议处理64时分多路复用渠道- 10 base - t以太网- UART-双同步-透明PowerQUICC 0.1 MPC860T关键特性快速以太网支持•10/100BASE-T支持——完全符合IEEE 802.3μ10/100BASE-T标准——支持三种不同的物理接口- 100 mbps 802.3与媒体无关的接口(MII)- 10 mbps 802.3信息产业部- 10 mbps 7线接口——大型芯片上的TX和RX FIFOs来支持各种巴士延迟——重新传输从传输FIFO相撞后——自动内部的冲洗receive FIFO对小牛和碰撞——芯片外环缓冲区描述符由用户自定义的大小几乎无限的灵活性允许管理的传输和接收缓冲区内存•10/100媒体访问控制(MAC)特性-地址识别——广播-单站地址-混合模式-多播散列——充分支持媒体的独立接口(MII))-中断模式——每帧——每个缓冲(可选择的缓冲中断功能使用我一点不支持)——自动中断向量的生成Rx和Tx事件(类:Tx中断,Rx中断,参考关键中断)——以太网通道脉冲数据来/从外部存储器嵌入式PowerPC核心有87 mips在66 mhz(使用Dhrystone 2.1)•单一议题,32位版本的嵌入式PowerPC核心(完全兼容的第一本书PowerPC架构定义)与32×32位定点寄存器——嵌入式PowerPC核心执行分支折叠,分支预测与条件预取,没有条件执行- 4 kb数据缓存和4千字节指令缓存,每个都有一个MMU——指令和数据缓存是两种方式,集关联,物理地址,4字线突然,最近最少使用(LRU)替换,可锁定的在线粒度——MMUs与32 TLB条目,完全联想指令和数据TLBs——MMUs支持多个页面大小为4 kB、16 kB、256 kB、512 kB和8 MB;16虚拟地址空间和8保护团体——先进晶片上的仿真调试模式•多达32位数据总线(动态巴士大小为8、16、32位提供了通过内存控制器)•32地址行完整的静态设计(0 - 50•MHz操作系统集成单元(SIU)•总线监控•假中断监控•软件监管机构•周期中断计时器4 MPC860T技术总结摩托罗拉初步/更改,恕不另行通知•低功率停止模式•钟合成器•PowerPC Decrementer•PowerPC时间基地和RTC•重置控制器•IEEE 1149.1测试访问端口(JTAG)存储控制器(8银行)•包含完整的动态随机存取记忆体(DRAM)控制器每个银行可以•芯片选择或RAS支持DRAM银行•15等待状态可编程的每记忆银行•Glueless接口DRAM单一管道内存模块(simm),静态随机存取内存(存储器),电可编程只读存储器(EPROM),Flash EPROM等等。

以太网接口设计技巧

以太网接口设计技巧

以太网接口设计技巧1. 满足吞吐量需求:根据实际使用环境和网络负载,选择合适的以太网接口速率和带宽,确保能够满足吞吐量需求。

常见的以太网接口速率包括10Mbps、100Mbps、1Gbps、10Gbps等。

如果需求较高,可以考虑使用双绞线接口、光纤接口或高速以太网接口。

2.网络协议支持:以太网接口设计要考虑支持的网络协议,如IP协议、TCP协议、UDP协议等。

确保以太网接口能够兼容常用的网络协议,并能够进行数据包的正确解析和处理,以保证数据的完整性和可靠性。

3.抗干扰能力:以太网接口设计时要考虑抗干扰能力,避免外部信号对数据传输造成干扰。

可以采用屏蔽接口、差分信号传输和滤波电路等技术手段,提高以太网接口的抗干扰能力。

4.自适应速率:为了适应不同的网络环境和负载需求,以太网接口设计中可以加入自适应速率的功能。

即根据实际网络负载和带宽情况,动态调整以太网接口的速率和带宽,提高网络性能和资源利用率。

5.容错设计:以太网接口设计时要考虑容错能力,避免因单点故障导致整个网络中断。

可以采用网络冗余、链路聚合和设备备份等技术手段,提高以太网接口的容错能力。

6. QoS支持:为了保证网络中关键应用的性能,以太网接口设计中可以支持QoS(Quality of Service)服务。

通过对不同类型的数据包进行优先级处理和调度,保证关键应用的带宽和延迟需求。

7. DMA技术:采用DMA(Direct Memory Access)技术可以提高以太网接口的数据传输效率。

通过直接访问主存储器,减少CPU的参与,加快数据传输速度,并释放CPU资源用于其他计算任务。

8.简化驱动程序:以太网接口设计时要考虑简化驱动程序的开发和维护工作。

可以提供易用的API和标准接口,帮助开发人员快速开发和集成以太网接口驱动程序。

9.功耗优化:以太网接口设计中可以考虑功耗优化,减少不必要的能源消耗。

可以采用低功耗模式、动态功耗管理和智能唤醒等技术手段,降低以太网接口的功耗,延长电池寿命。

基于MPC8260的ATM驱动开发

基于MPC8260的ATM驱动开发

基于MPC8260的ATM驱动开发
曹小白; 葛宝忠; 路海
【期刊名称】《《微计算机信息》》
【年(卷),期】2005(21)5
【摘要】介绍了ATM技术的特点以及深入分析了PowerPCMPC8260的ATM 步长控制器(APC)的原理,分析了VxWorks网络模块,给出了在VxWorks实时操作系统下的END模式的ATM驱动程序设计,重点讨论了ATM驱动开发中需注意的特殊问题。

【总页数】3页(P90-91,134)
【作者】曹小白; 葛宝忠; 路海
【作者单位】450002 郑州解放军信息工程大学信息技术研究所
【正文语种】中文
【中图分类】TN919; TP2
【相关文献】
1.基于MPC8260的视频会议终端设计与实现 [J], 方娜;蔡华锋;汪繁荣
2.MPC8260 ATM接口驱动软件的实现 [J], 吴卫凯;熊辉
3.基于驱动开发程序包的视频驱动开发 [J], 王林;王正勇;卿粼波;徐萍
4.基于MPC8240、MPC8260的BSP设计与实现 [J], 何先波;芦东昕;罗建;刘敏;李薇
5.基于MPC8260与NP7250微码通信模块的设计与实现 [J], 贺冰琰;姜帅
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MPC860 PCMCIA的双以太网接口驱动设计(华中科技大学)郝东,杜旭摘要:MPC860芯片因其强大的通信处理能力和多种协议的支持而被广泛应用于通信领域。

但其内部模块仅支持一个10/100M自适应以太网口,限制了应用。

本文提出了一种基于其PCMCIA接口扩展的双100M以太网接口的方案,分析了相关驱动程序设计的关键问题。

关键词:嵌入式系统,MPC860,PCMCIA, Linux设备驱动中图分类号:TP302.1 文献标识码: A 国家十五科技攻关计划:2001BA205A08-09The Driver Design Of Dual Ethernet Ports Based OnMPC860 PCMCIA InterfaceHAO Dong,DU XuAbstract: Due to the strong ability of communication processing and support to many protocols, MPC860 is widely used in communication area. But it can only provide one 10/100Madaptable Ethernet interface directly by its internal modules, which limits its application.This paper gives out a solution based on the PCMCIA interface of MPC860 and analyzes key problems of the related driver design.Key words:Embedded System,MPC860,PCMCIA,Linux Device Driver1.引言MPC860是互联网络和数据通信及控制领域使用较多、性能相当优越的嵌入式微处理器,其内部集成的CPM (Communication Processor Module) 能完成UART、HDLC、Ethernet 等多种协议的通信控制和处理。

然而当应用系统需要两个以上的10M/100M自适应以太网口时, 仅靠片内的通信控制模块便不能满足需求,这是因为:MPC860内部仅有FEC(Fast Ethernet Controller)能实现一个10/100M自适应以太网口,而SCC(Serial Communication Controller)仅支持10M以太网。

为了达到应用要求,可以通过MPC860的双PCMCIA接口扩展出两个10/100M自适应以太网口。

本文基于这种双PCMCIA扩展以太网口的硬件结构分析了相关驱动程序设计中的关键问题。

2.电路分析和设计应用中我们选用了ASIX公司的AX88790芯片。

AX88790芯片内部集成了10/100M MAC (Media Access Control) 控制器、PHY(Physical Layer Device)和收发器,符合IEEE802.3 / IEEE802.3u标准,提供兼容PCMCIA 2.1+规范的PCMCIA接口,完全满足我们的应用需求。

注:x为A/B对应第A/B路PCMCIA接口;DIR为缓冲方向控制信号,/OE1,/OE2分别为高字节,低字节输出使能信号,G1,G2,OC,G为使能或片选输入信号图 1 扩展以太网口的硬件结构在MPC860的PCMCIA读写控制信号中, /IORD、/IOWR、/OE、/WE和/REG信号由两个PCMCIA接口所共用,而/CE1,/CE2信号为每个接口分别一组, PCMCIA数据信号和地址信号则均由CPU数据线和地址线提供。

另外,MPC860又为每个接口独立读写添加了两个使能信号:地址锁存使能信号/ALE和缓冲输出使能信号/POE。

当CPU读写的物理地址落在映射到某个PCMCIA接口的地址区间时,所属PCMCIA接口(A/B)便输出该物理地址到CPU地址线,控制公用的 /IORD、/IOWR、/OE、/WE和/REG信号,并通过仅有效对应接口的/POE(A/B),/ALE(A/B),/CE1(A/B),/CE2(A/B)将两个接口隔离,从而完成两个接口的独立访问。

据此我们设计出如图 1的电路结构。

适配器的PCMCIA状态输入信号/CD1, /CD2,/VS1,/VS2是每接口各一组,用于对应接口的PC卡的检测和识别。

由于我们的应用目的是通过PCMCIA接口扩展两个10/100M以太网口,并非设计PCMCIA插槽,故将/CD1, /CD2信号长期置于有效状态。

另外为了表示AX88790的电源键值为3.3V,我们有效/VS1,而/VS2不连接(No Connection)。

其它状态输入信号则上拉至3.3V置于无效状态(见图 1)。

3. 驱动程序设计为了安全、高效的管理和使用PCMCIA设备,PCMCIA规范定义了如图 2所示的系统软件结构,其中SS(Socket Services)提供对PCMCIA适配器的底层配置服务,CS(Card Services)负责向客户驱动提供与适配器无关的服务,将从SS收到的事件通知客户驱动,而具体客户驱动则通过CS服务完成具体PCMCIA设备功能的驱动。

我们应用中所采用的Linux-2.4.5为了支持PCMCIA设备,根据PCMCIA规范实现了CS层,并提供了相关接口。

基于上述软件环境,我们将实现MPC860 PCMCIA 主机适配器的SS驱动层和利用配置芯片并控制其以太网功能的AX88790客户驱动程序。

图 2 PCMCIA软件系统结构3.1 MPC860 PCMCIA适配器SS驱动程序设计主机适配器驱动程序是AX88790客户驱动程序访问AX88790芯片的基础,它向CS层提供标准的SS。

Linux为SS定义了函数接口原型并组织在结构pccard_operations中。

对我们的主机适配器驱动程序,该数据结构有如下实现:static struct pccard_operations m8xx_services= {:m8xx_inquire_socket, get_status:m8xx_get_status, inquire_socketset_socket:m8xx_set_socket,set_io_map:m8xx_set_io_map,};set_mem_map:m8xx_set_mem_map,根据SS标准,设计中需要解决的问题主要包括以下四个方面:(1)CPU总线地址窗口和PCMCIA地址窗口的映射PCMCIA芯片地址空间分Memory和I/O两种。

PCMCIA芯片对Memory空间不设置基址寄存器而直接译码,故PCMCIA芯片的Memory地址输入和片内目标地址相同。

又由于主机适配器对落在某个PCMCIA映射窗口的总线地址会直接驱动到地址线上,所以PCMCIA Memory空间地址,对应的总线地址都应和片内目标地址相同,而不允许动态分配。

故总线地址窗口和PCMCIA Memory地址窗口的映射关系是静态的,每个Memory窗口大小应按最大地址线根数26配置为64M(2的26次幂),其起始地址应与64M对齐。

我们在4G的总线地址区间中分配0x70000000到0x80000000 256M的连续区间分作四个64M 窗口,取前2个分配给A接口, 后2个分配给B接口,仅通过m8xx_set_mem_map()向CS提供Memory空间窗口属性和映射开关的控制。

因为PCMCIA芯片I/O基址寄存器的存在,用于映射到I/O空间的系统地址可以由CS 动态分配,只要保证大小在规范限定的64K以内即可。

m8xx_set_io_map()向CS提供I/O空间映射服务。

(2)PCMCIA接口信号的控制和管理我们通过设置PGCR寄存器控制PCMCIA接口信号,完成CS对接口的控制命令。

PGCR寄存器的相应位控制RESET信号和/POE信号的电平状态。

例如:if(state->flags & SS_RESET)M8XX_PGCRX(_slot_) |= M8XX_PGCRX_CXRESET; //有效_slot_号socket RESET信号elseM8XX_PGCRX(_slot_) &= ~M8XX_PGCRX_CXRESET; //有效_slot_号socket RESET信号是根据命令SS_RESET对RESET的电平设置。

为接口/IREQ信号产生的中断请求分配中断号时,我们考虑到共享中断会引入中断延时而降低驱动性能,因此专门分配7和9使每个接口独占一个中断向量。

相应设置PGCR 的IREQLVL后,主机适配器在接口的/IREQ有效时便向处理器核心提交相应的中断请求。

在m8xx_services结构中,m8xx_set_socket()提供接口信号的控制和管理服务。

(3)接口状态的查询和对状态变化的响应我们通过读取PIPR寄存器查询状态输入信号,并将状态信息提供给CS。

在主机适配器的PCMCIA状态输入信号中,我们固定了/CD1, /CD2,/VS1,/VS2信号的连接,其状态将不会改变。

AX88790没有实现PRR (Pin Replace Register) ,因而也无需管理/STSCHG信号的变化。

可见基于我们的电路结构不会产生状态信号的改变,更无需处理。

在m8xx_services结构中,m8xx_get_status()提供接口状态的查询服务和对状态变化的响应。

(4)主机适配器接口特性查询结合上面的讨论,我们对CS的特性查询返回下面的信息结构:static socket_cap_t capabilitiesX= { //X 代表A或B插槽features: SS_CAP_PCCARD|SS_CAP_MEM_ALIGN|SS_CAP_STATIC_MAP,//静态存储映射irq_mask:0xffff, //可支持1至16的中断号,但若pci_irq 非0则仅支持pci_irq map_size: 0x1000, //存储窗口最小映射单位为4K字节pci_irq: A接口为9,B接口为7 //分配A接口9号中断,B接口7号中断 } 模块加载时,我们通过register_ss_entry()将m8xx_services向CS注册,接着CS通过函数指针调用m8xx_inquire_socket()查询并获得capabilitiesX接口特性信息,从而建立起CS和PCMCIA主机适配器驱动程序间的桥梁,使CS能正确高效的通过SS配置管理主机控制器。

相关文档
最新文档