我现在已经有一块365卡在使用(全部使用默认标志:4348 5049),想再加一块365在同一台机器上使用,请问传送数据给其中一块卡时,我该如何区别它们两个地址?看了说明书的最后一页设定PCI设备ID,还是不太明白。如果设第二块PCI卡D1下拉使用外部ID,那么又如何将想设的ID号送给第二块卡呢?送数据的时候本身就需要地址的?
我们驱动的API函数CH365mOpenDevice()第一个参数是pci卡的序号,一般靠近cpu的插槽序号为低,可以根据这个来区分。 首先您得先将D1下拉,用来设置模式为使用外部ID,这时配置空间部分寄存器将映射到以0040H为起始地址的本地储存器中,这时您将本地储存器0040H-0043H的内容设置为你想要的ID号,pci设备读取配置空间(00H-03H)时就等于获取的储存器中相应空间(0040H-0043H)的内容(ID号)。而16V8就是起的是本地存储器的作用。
我用的tc2.0环境,里面有和CH365mOpenDevice()相同功能的函数吗? 您的意思是先用烧入器把16v8里面的00H-03H写入自己想要的ID号,然后和365连接上。插上主机后,主机上电的过程中自动会读取16V8里面00H-03H地址的烧好的ID数据,然后把这个数据作为这块卡的ID?控制的时候直接使用就可以了?
这个函数在我们的驱动程序里。 建议您先看下我们的365说明书里关于这方面的内容,至于16V8的目标数据我们也是有的, 在CH365\EVT\PUB\IOP_HITX或CH365\EVT\PUB\IOP_HIT里,你也可以参考下。下载地址: /download/list.asp?id=22
如果您单纯的想区别2张CH365卡的话,因为系统自己会识别为不同的PCI设备,2块CH365在用1台计算机上使用是没有问题的,不用改ID。I/O地址和MEM地址也是不同的,您可以在设备管理器中查看。
我要和两块进行通信,所以需要他们各自的地址。用的也不是windows。 我现在把其中一块D1和D7下拉了,自检后显示设备号分别是4348 5049;7C7D 7D7D,数据口我都没接16V8,我用默认的4348 5049与旧卡通信正确,但用7C7D 7D7D与新卡通信没有反应,可也没说没检测到365,是怎么回事? 因为对PCI不是很了解,不知我刚才在3楼说的过程是否正确?谢谢!
我们的卡ID号默认为4348 5049,驱动里面也是4348 5049,如果您将ID修改了,那么驱动也需要修改,要不然用不了。D1下拉后,模式为使用外部ID,16V8可以提供外部的ID号。
不好意思,我不清楚16V8提供的ID号具体是多少?文件夹里面的txt好像没有?
16V8的目标程序在文件夹PCI_ID里,可以根据需要进行修改设定。建议见看看CH365DS1.PDF的9.10和9.11章节,还有文档CH365EVT.PDF,这些里面有比较详细的讲解。
最好的办法如下: 1.如果是两个相同的卡的话,通过操作api函数的序列号识别,一般靠近cpu的卡为0,其次为1...依次类推. 2.如果是要自动识别不同功能的卡的话,可以用下拉电阻进行识别.具体就是在d6或d7加下拉电阻,通过读io口状态识别.
这个方法能够确定在所有的操作系统上都是这样的吗?因为我也涉及到这个问题。我现在就是把最先读到的那个作为第一个设备。感觉不是很好。 后面我也试过,基本上在所有的主板上都是楼上说的那样,但不知道是不是一定是这样的。
没有什么绝对的,但基本上都是这样的。
有个奇怪现象,使用默认ID工作正常,使用外部不同的ID,配制文件INF里面也做了相应的改变,但还是不能用?谁知道这是为什么?同种卡不同ID,如何共用一个INF文件?也就是INF该如何写?谢谢!
不同的ID应该对应着不同的INF文件,当你使用外部ID时,首先必须将CH365的D1下拉,然后还得将INF文件里的设备ID号通通修改成您所设定的外部ID号,安装驱动时再对号入座.