2023年12月31日发(作者:新款本田雅阁2022款图片价格)
官方有关CH365的问题解答
* 需要设计参考资料(光盘资料可以参考文档,网上资料更新)
下载CH365评估板资料,有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地址没有选正确。
更多推荐
中断,地址,服务,导致,驱动程序,默认,程序
发布评论