* 需要设计参考资料(光盘资料可以参考FILELIST.TXT文档,网上资料更新) 下载CH365评估板资料CH365EVT.ZIP,有PDF文档和例子程序,例如ISA转换的说明CH365EVT/CH365ISA /CH365MEM,中断的说明CH365INT,与单片机连接说明CH365M4B/CH365SPI,读写速度的说明SPEED365, I/O地址的16V8程序,调试工具DEBUG365,PCB设计说明CH365PCB,设置PCI-ID的例子,VC/VB/BC的例子 * 原理图和PCB中的PCI引脚号和ISA引脚号是如何定义的 可以参考CH365的PCB设计说明CH365PCB,我们针对32位PCI总线,我们图中引脚计数是从元件面(B侧) 的左边(小)向右边(大),然后接着到焊接面(A侧)的右边(大),再到左边(小),我们图中的 PIN1-PIN62对应于B侧的PIN1-PIN62,PIN63-PIN121对应于A侧的PIN62-PIN1。保留引脚,一般不连接。 * 有些PCI卡工作不正常 1、如果是全自动布线的PCB,信号线比较乱,容易相互干扰,那么就有可能在个别主板上不工作, 自动布线的长度不符合PCI规范,并且抗干扰能力差。请参考PCB布线说明CH365PCB。 强烈建议全板PCB铺铜,并且接地,减少干扰 2、初次做PCI卡有可能对物理尺寸把握不准,容易出现接触不良的情况,在PCI规范中有精确尺寸说明 3、焊接导致的问题,包括引脚虚焊、金手指不干净导致接触不好等。 4、用了一段时间后搬动计算机导致PCI卡工作不正常通常是接触不好导致,PCI卡PCB的厚度是1.6mm 5、PCI信号线通常只能带一个负载,例如CLK只能接CH365,不能接其它IC,如果一定需要输出,那么建 议:缩短CLK走线长度,就近用一个高速的CMOS电路缓冲后,提供给其它电路,不能用TTL电路缓冲 6、如果是接双口RAM时数据不正常,那么要检查速度是否匹配,可以参考SPEED365程序中的说明, 使用60nS脉冲60nS间隔试试,因为有些双口RAM的速度达不到30nS,或者改为全字节方式读写 * 插了PCI卡后开不了计算机? 通常是PCI信号线短路,例如焊接导致PCI信号线间短路,或者PCI卡的尺寸不准导致插偏了引脚而短路。 也可能是CH365的数据线D1被下拉,导致进入外部ID的方式,但是却没提供外部ID。 * 在WINDOWS下找到新硬件但是无法安装驱动 四种情况,1是PCI引脚接触不良,2是CH365的PCI信号引脚虚焊,3是自定义的外部ID错误,4是修改INF 产生错误。前两种结果导致计算机从CH365获得的PCI-ID中部分位始终为1(断开后默认为高电平),相 当于修改了PCI-ID,由于与驱动程序文件INF中的PCI-ID不一致,使WINDOWS认为与驱动程序不匹配。 后两种情况中,ID错误可能是自行定义了PCI-ID,但是未同步修改INF文件中的ID,或者外部电路无意 中将CH365的数据线D1下拉,导致CH365进入外部ID的方式。 * 关于WINDOWS下PCI中断共享 PCI中断在硬件上是多个中断请求线“逻辑或”,PCI中断是电平中断。假定PCI卡A和PCI卡B共用一个中 断号12,那么,卡A产生中断或者卡B产生中断时,CPU都会收到12号中断请求,CPU的12号中断描述符只 有一个,不过,为了支持中断共享,操作系统会建立一个链表,分别是卡A的中断服务程序和卡B的中断 服务程序。当12号中断产生时,CPU先调用卡A的中断服务程序,卡A的中断程序检查卡A自身的中断标志 (PCI卡硬件要自己记住中断),如果是卡A的中断,那么卡A的程序就清除卡A硬件寄存器中所记忆的中 断标志,并且让卡A的硬件撤消中断请求,(PCI是电平中断,所以要记忆直到进入中断服务,完成后要 撤消),然后执行中断服务,完成后退出卡A的中断服务,并通知操作系统“这是卡A的中断”,操作系 统收到卡A的通知,则结束本次12号中断服务。如果卡A的程序检查自身的中断记忆标志,发现不是自己 产生的中断,那么直接退出卡A的中断服务,并通知操作系统“这不是卡A的中断”,所以操作系统将在 链表中,继续调用卡B的中断服务程序,如果卡B的程序检查卡B自身的中断记忆标志,发现是自己产生 的中断,那么就会让卡B的硬件撤消中断请求以及清除记忆标志,执行中断服务...。这是WINDOWS下的 大致中断处理过程,并非所有中断号支持共享,也并非所有PCI卡都支持中断共享,Windows也允许个别 PCI卡独立占用中断。CH365的芯片控制寄存器中的中断激活标志位就是中断的记忆标志。 * 关于应用层中断服务的特点 CH365的动态锭接库DLL提供了伪中断服务,实际的中断服务仍然是在驱动程序库完成的,只是在完成后 向DLL发了个通知,由DLL再调用伪中断服务子程序。由于涉及到系统层与应用层切换以及线程切换, 所以中断频率不能太高,如果太高,虽然驱动程序能够收到中断,但是等到通知到应用层,再调用客户 的伪中断服务程序,最慢可能需要10毫秒,从而在应用层丢失中断。如果产品的中断频率大于几百次每 秒,那么建议自己写驱动程序或者改写我们的驱动,在驱动程序中实现中断服务。 * 如何做WINDOWS驱动程序,WINDOWS DDK如何获得 我们的驱动程序全部使用WINDOWS 98/2000/XP DDK编译,同时支持WINDOWS 98/ME/2000/XP。DDK可以从 微软官方网站免费下载(订购芯片时如果需要我们也可以提供刻录光盘),除此之外,只需VC 5.0或者 VC 6.0编译器,完全不需要额外软件支持。这样做出的驱动程序代码效率高并且文件短小,通常我们用 INF安装信息文件而不是SETUP可执行程序,可以算是绿色软件。用户如果希望有更友好或者更简单的编 译方法,那么可以使用第三方的驱动程序生成工具,当然,那些软件通常都不便宜。 * 在WINDOWS进行I/O操作,如何确定I/O地址 其实在WINDOWS下通过CH365的动态链接库执行I/O操作,完全不需要了解I/O地址,因为如果当您只输入 偏移地址(偏移地址的值在0到0xFF之间),那么DLL会自动替您加上I/O基址得到实际地址再进行操作 * 如何实现简单的I/O输入输出 使用一个74LS244,其G端接IOP_RD,可以输入8位数字信号,使用一个74LS273,其CLR接PCI-RESET,其 CLK接IOP_WR,可以输出8位数字信号,另外,在不使用存储器功能时,CH365的A10-A15也可以作为数字 信号输出,其中A15还可以由工作模式设置其默认电平。需要更多I/O可以用82C55A或者地址译码后扩展 * 老的ISA卡都能升级吗 如果可以修改软件,那么都能升级。如果要求完全不改软件,那么,只使用I/O的ISA卡基本上都能直接 升级,如果使用存储器MEM,那么可以参考CH365MEM工具处理升级,如果使用中断,那么必须修改软件。 对于使用I/O的ISA卡,支持I/O块地址100H-3FFH,每块16个字节,在CH365评估板资料中有16V8程序。 * 使用CH365评估板以本地定址功能直接升级老的ISA卡,原软件无法显示数据有误 1、检查本地定址功能是否启用:J3的D4必须短路(D3、D2、D1断开),J5必须短路 2、检查I/O地址是否匹配:CH365评估板的本地定址的I/O地址由U3(16V8芯片)决定,默认情况下,具 体I/O地址由J4选择,24XH、25XH、一直到2BXH,请确认原ISA的地址是否匹配,如果不匹配,可以 将CH365/EVT/PUB/IOP_HIT或者IOP_HITX目录下的其它I/O地址的16V8程序用编程器写入U3后再试。 3、如果I/O地址确定匹配,还可以用下述方法检查,去掉原ISA卡,用DOS的DEBUG或者WINDOWS下CH365 调试工具读取指定的I/O地址,默认应该是0EFH(位4因为被下拉而呈低电平,其余默认为高电平), 而插入原ISA卡后应该是原ISA卡输出的数据。例如,CH365本地定址260H-26FH,那么不插ISA卡读取 260H应该返回0EFH,插入ISA卡并且该卡地址为260H,那么返回值将来自该ISA卡。否则,如果默认 值是0FFH,那么说明CH365本地定址功能未启用或者I/O地址没有选正确。
为什么:对于使用I/O的ISA卡,支持I/O块地址100H-3FFH?? 为什么是100h-3ffh?
多数ISA卡只用10位地址译码000h-3ffh,ISA主板自用000h-0ffh,剩下0100h-03ffh
如果原先的ISA永乐12位地址译码,升级为PCI咋办呢?
我的CH365 连了一个FPGA ,刚开始还可以启动机子,也能进入中断,现在老是开机启不动,换了一个插槽,可以启动,也能获得中断号,但就是进不了中断.现在我把FPGA里的程序改了一下,可以启动,但不能获得中断号.请问这是什么原因,多谢你的指点.谢谢!
我有一块ISA式的控制卡,现在加入CH365后,将它转换为PCI式的,请想,我的CH365需要烧程序吗?
为什么在WIN98里运行正常,在WIN2000里就不行了,为什么,用什么方法可以改进吗?
借此我也问一下,对于插好的雕刻机控制PCI卡,有几个问题: (1)如何才能知道它此刻的I/O基址(没有定址)?若用DOS下的DEBUG命令符该如何操作?除此外还有什么办法? (2)如何用DEBUG365调试,我从网上载下的无法用,显示:无法打开ch365设备,在测试前,我都该做什么? (3)CH365的中断响应,介绍一下 求教斑竹!!! 谢谢..
1.I/O基址是系统自动分配的,具体操作在INT1A中有。 2.无法打开设备,是 不是驱动程序就没有安装好。 3。 您想知道中断的那一部分呢?
INT1A是什么意思?我也遇到和xiaoxiao同样的问题。主要是想知道怎样获得地址。有没有现成的源程序?请求给予,以便研究。不胜感激。
中断 1A是 PCI的功能调用,获得基址的程序在CH365DOS.C里面有。
好的。谢谢,我去看看。
怎么查找我的ISA卡的基地址呀,我不知怎么做
我要定址转换,但不知我的ISA卡的基地址,请高手指点下
请教版主,我要做一个ch365评估板的驱动,主要实现i/o读写和中断功能,驱动程序中要用的你们提供的那个CH365DLL.DLL吗? (在驱动方面我还是个菜鸟,我要用你们的评估板搭电路,用的是引出的PCI针脚)
请问那位大哥有CH365CAN.ZIP里Demo的CanDLL的源码啊?给我发一份吧,谢谢了.28111760@QQ.com