阅读:1813回复:15
哪位大虾了解ISA插槽的驱动怎么写?
老板逼着写驱动,月底就要交工。俺对这些很不了解,还望有高人指点一二,多谢!
|
|
沙发#
发布于:2003-08-17 19:48
在什么系统下的驱动?你的硬件都有什么功能?
|
|
|
板凳#
发布于:2003-08-17 20:50
驱动应在win98或win2000下使用,我搞过单片机及dsp的应用系统开发,相对于isa驱动来讲可能偏于硬件,以前未接触过此类驱动编写老板要的又急,故不知道如何下手,还望不吝赐教。
一、接口板的功能 接口板的任务是将经放大、解调后的无线电修正通道视频信号接收下来,通过译码等处理后送给主控机。完成的主要功能有: 1. 接口板具有加电自检功能,包括I/O口、±6V及12V电源、RAM、ROM等自检。 2. 接口板能接收主控机送来的6个伪随机数,并进行迭代、对比。 3. 接口板具有并行对三路视频编码信号的接收、判别、译码、解密、存储等功能。 4. 接口板能接收主控机送来的点频编码信息,转而再向模拟器提供三路点频选择信号。 5. 接口板本身能为显示板提供PK正常、三路副载频存在信号及CC存在信号。 6. 本机同步码的产生能由接口板手动输入。 二、硬件设计 1. 接口板CPU的选择 本接口板的CPU采用16位的8096单片机 2. 接口板与主控机的接口 在解密过程中,主控机要向接口板传送6个字节的密匙随机数,接口板要将接收到的7个信息字送给主控机,并且它们之间还有一些状态信息标志位需要传送。根据技术要求,它们之间的接口采用双端口SRAM,接口板与主控机均可直接对SRAM进行读写。该方案接口板与主控机之间的联络较为简单,处理方便。工作过程为:主控机向接口板送随机数时,先将随机数写入规定单元,再发刷新信号,接口板查询到主机送来的刷新标志信号后直接读取上述单元的内容即可;接口板向主控机送数据时,先把7个信息字送入规定单元,然后给主机产生一个中断信号,通知主机取走信息。 [编辑 - 8/17/03 by zp156] |
|
地板#
发布于:2003-08-17 21:05
ISA的驱动相对比较简单。
|
|
地下室#
发布于:2003-08-17 21:10
在98的话,写成VXD形式的,最好!
在2000下,写成NT试或WDM的都可以,如果只想写一个,既可在98下工作,又可在2000下工作,可写成WDM的。 ISA的驱动相对其他总线比较简单,你涉及到的只是端口的读写,映射内存的读写,和中断的处理,应该是没什么大的问题的。可选用DS写,短期内能完成。我现在正为ISA下的系统DMA发愁呢,不知道怎么来启动DMA。 |
|
|
5楼#
发布于:2003-08-17 21:27
我现在正为ISA下的系统DMA发愁呢,不知道怎么来启动DMA。 还没有试好呀? :D |
|
6楼#
发布于:2003-08-17 22:19
我不打算直接操作8237了,因为太繁琐了,我想直接用DDK的那些函数来做,其中有个函数IoMapTransfer,我看帮助上说,它用来编程DMA硬件,也就是执行这个函数的结果,就相当于我设置了8237的寄存器。但在启动DMA方面,我看帮助上说,要给设备发送合适的命令,来让设备请求DMA服务,我们的硬件设计是FIFO半满发DREQ给8237,8237从CPU得到总线控制权后给FIFO发DACK,DACK结合ISA总线上的控制信号线来译码产生片选,从FIFO中读取数据。你说硬件上没有寄存器给驱动来操作,我怎么来它发命令,启动传输?
|
|
|
7楼#
发布于:2003-08-17 22:23
FIFO半满发请求。那你开始采集数据后,不就可以了?
|
|
8楼#
发布于:2003-08-17 22:33
FIFO的半满信号接到了总线上的DREQ, 我怎么控制一根信号线???
|
|
|
9楼#
发布于:2003-08-17 22:49
FIFO的半满信号接到了总线上的DREQ, 我怎么控制一根信号线??? 你控制FIFO什么时候有数据呀。数据采集是什么来触发的? |
|
10楼#
发布于:2003-08-18 09:19
[quote]FIFO的半满信号接到了总线上的DREQ, 我怎么控制一根信号线??? 你控制FIFO什么时候有数据呀。数据采集是什么来触发的? [/quote] FIFO中的 数据是板子上的单片机输出给FIFO的,当FIFO半满的时候给总线发DREQ,你的意思是?? |
|
|
11楼#
发布于:2003-08-18 10:23
你的卡是一上电,就不停的采集数据吗?总有个命令才开始采集吧?然后FIFO才能半满吧?
|
|
12楼#
发布于:2003-08-18 11:22
什么时候采集数据和DMA没什么关系,只有FIFO半满的时候,才给总线发DMA请求信号DREQ,这个时候才和DMA有关了。看Art Baker的书上说,要给设备发送合适的命令,难道我的硬件设计上非得要留一些寄存器,让驱动来写,使能DMA操作?从我驱动的角度来说,正好和Art Baker说的一致了,驱动好处理了。但从硬件的角度上说,变得麻烦也没有必要,本来,硬件的设计是半满发DREQ给8237,然后8237获得总线控制权后给FIFO发DACK,DACK和总线上的其他控制信号线一起经过一些译码等的处理产生一个片选信号给FIFO,这时候开始真正的DMA传输操作。
我分析的对不对?? |
|
|
13楼#
发布于:2003-08-18 16:21
为什么不用PCI总线。
|
|
14楼#
发布于:2003-08-18 17:18
我也想用PCI总线,可是这是项目的需要,现在感觉,做DMA,系统DMA还不如总线主的好做
|
|
|
15楼#
发布于:2003-08-19 09:57
怎么没人来回答了??
|
|
|