Chinaunix首页 | 论坛 | 博客
  • 博客访问: 557243
  • 博文数量: 104
  • 博客积分: 4131
  • 博客等级: 上校
  • 技术积分: 1137
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-31 15:05
文章分类

全部博文(104)

文章存档

2011年(13)

2010年(23)

2009年(68)

我的朋友

分类: LINUX

2011-10-08 10:41:34

33位 33MHz PCI 总线主主控IO加速器,理论上传输速率高达132MB/s,两个可编程DMA控制器
本地总线支持8位,16位和32位外围设备和存储设备,本地总线有三种工作模式:M、C、J模式
 
M模式可与Motorola MPC850或MPC860系列微处理器无缝连接
C模式可与Intel i960系列高性能微处理器进行无缝连接
J模式地址和数据线复用,应用很复杂,利用J模式和ti公司6000系列DSP的HPI口进行连接,控制逻辑简单
 
C模式能够满足绝大多数应用需求,C模式的本地总线操作时序简单,逻辑控制相对容易
 
通常PCI空间有配置空间,存储器空间,IO空间三大资源
存储器资源支持0-4GB空间配置和映射,IO空间支持0-256字节空间的配置和映射
 
存储器空间支持8位,16位,32位总线的位宽配置和操作,而IO空间只支持32位总线位宽配置和操作
 
存储器空间支持单一周期和突发模式读写操作,而IO空间只支持单一周期读写操作
 
在编写设备驱动程序时,存储器空间用程序指针进行访问,IO空间用专有函数进行访问
 
DMA和突发数据传输
9054有两个DMA通道,可以独立工作,互不干扰,采用DMA方式传输可以节省CPU资源
采用数据突发数据传输可以提高数据传输速率,充分发挥PCI总线数据速率
 
DMA+数据突发 使能突发寄存器,使能DMA寄存器,DMA方向PCI->LOCAL,指明DMA一次传输字节数
 
PCI加密卡属于字符设备
 
linux内核通过file_operations结构体访问驱动程序提供函数
加载insmod 调用init_module()函数 卸载 rmmod 调用cleanup_module()函数
 
设备驱动程序大致可以分为以下:驱动程序的注册与注销,设备的打开与释放,设备的读写操作,设备的控制操作,设备的中断和轮询处理
 
注册与注销:register_chrdev()或者register_blkdev() unregister_chrdev()或者unregister_blkdev()
 
打开和释放:open()检查设备相关错误,第一次打开则初始化,识别次设备号  close()释放
 
读写:字符read()、write(),块block_read()、block_write()
 
控制:ioctl()
 
DMA使用Scatter/Gather模式:
设置方式寄存器->建立描述符表->设置描述符寄存器->设置命令状态寄存器->启动停止DMA
 
主要API:寄存器读写、DMA读写、IO读写、内存读写、加密卡寄存器操作
 
测试:500M文件 每次传送8K,AES加密,突发
 
IO方式:2.9MB/s MEM方式:3.7MB/s DMA方式:30MB/s
 
linux 下使用开发包PLXSDK,里面包含了9030,9050,9054,9056,9080,9656 等多个芯片例程
 
阅读(4210) | 评论(0) | 转发(0) |
0

上一篇:导线线径对照表

下一篇:没有了

给主人留下些什么吧!~~