From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



当我配置单个端口的时候,为什么所有的数字I/O端口都会复位?



硬件: Multifunction DAQ (MIO)

问题: 当我调用DIG_PRT_CONFIG来改变我一个端口的设置时,为什么其他端口的数字线都会复位到0伏?
当我在LabVIEW 或 LabWindows CVI中使用Easy I/O Digital函数来配置一个端口时,为什么其他端口的数字线都会复位?

解答: 所有使用8255或82C55数字芯片的NI产品都会有这种情况。当你在8255上改变一个数字端口的设置时,所有断口的数字线都会复位。这就是8255的工作方式,8255包括三个端口,每个都包含8条数字线(总共24条)。为了合理使用这块芯片,你必须在设置这些线的输出状态前进行所有的配置。EASY I/O函数有一个循环端子,当被设为0的时候,就会调用端口设置函数。这样,你就应该在设置完所有端口后,设置循环值大于0。但如果你想用EASY I/O来控制一个以上断口的话,很有可能在设置一个端口状态的时候,会复位其他线。这种情况不论你准备进行读还是写,都会发生。例如,你设置端口0为输出并设置线的状态,当你要设置端口1为输入时,这将导致端口0的复位。使用EASY I/O的vi并将循环值设为1,对多端口是不起作用的,因为使用未初始化的移位寄存器并不会改变你正在使用的端口。
合理的方法是当你在同时处理多个端口的时候,要避免使用EASY I/O功能。在LABVIEW中,先调用DIO Port Config函数 (每个端口一个),然后调用 DIO Port Write和/或 DIO Port Read函数。 相应的NI-DAQ函数是DIG_Prt_Config, DIG_Out_Prt, 和 DIG_In_Prt。
如果你的板卡上有多于一个的8255芯片,只有相同芯片上的线才会被影响到。例如,PC-DIO-96改板上有四块8255芯片,配置断口4不会影响端口0,1,2,6,7,8,9,10,11,而只会影响端口3和5。

相关链接: KnowledgeBase 2L8E72P6: What Is the 82C55A and Which NI Products Use This Chip?


附件:





报告日期: 12/09/1994
最近更新: 07/14/2003
文档编号: 0489FD8Q