基于ACR/Tbit路由器的硬件抽象层的通用性软件结构
时间:05-28
来源:互联网
点击:
调用用户空间与内核空间的数据交互。
在内核中维护一个由各注册设备名称所组成的动态链表,每个链表节点维护一个收发报文的数据队列,虚拟驱动与其他模块的数据交互都通过该链表进行。接收报文过程:内部通信模块将从接口单元接收的报文通过ioctl()调用传给虚拟驱动。该函数通过struct net_device *dev结构找到对应的虚拟设备的dev_ioctl()功能函数,调用memcpy_fromfs()将数据拷贝至内核空间,经过处理后通过netif_rx()函数通知上层协议有数据传入。发送报文过程:虚拟驱动将从上层软件取出的数据放至自身维护的通过虚拟接口设备名称维护的数据队列中,内部通信模块通过ioctl()论询各接口设备数据队列是否有数据可读,如果有数据,虚拟驱动通过memcpy_tofs()调用将数据拷贝至用户空间提供的缓冲区中。
文中针对大规模用户接入方式的特性,讨论了一种基于ACR/Tbit路由器的硬件抽象层的通用性软件结构设计及实现方式,并研究了其关键技术,包括基于UDP传输方式的内部通信的可靠性实现及基于多用户的动态模块加载技术,适用于路由器承载业务量的扩展和多用户接入特性,并且在上层软件实现中,基本上可以不考虑底层硬件细节,增强了路由器的开放性及可扩展性。
模拟电路 模拟芯片 德州仪器 放大器 ADI 模拟电子 相关文章:
- 12位串行A/D转换器MAX187的应用(10-06)
- AGC中频放大器设计(下)(10-07)
- 低功耗、3V工作电压、精度0.05% 的A/D变换器(10-09)
- PIC16C5X单片机睡眠状态的键唤醒方法(11-16)
- 用简化方法对高可用性系统中的电源进行数字化管理(10-02)
- 利用GM6801实现智能快速充电器设计(11-20)
