原创 NAT9914学习笔记(1)

2008-7-19 10:25 7780 4 4 分类: 测试测量

1.       发送GPIB数据消息的基本流程(from nat9914_rm):


(1)    确认T1 delay已经被正确设置;


(2)    等待NAT9914被编程(向auxcr寄存器写入0x09\89\0A\<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />8A指令)或寻址(CIC发送MTAMy Talker Address)指令)作为活动讲者;


(3)    等待BO位(ISR0[4])被设置;


(4)    将数据字节写到CDOR寄存器中;


(5)    等待BO位(ISR0[4])或ERR位(ISR1[6])被设置;


BO=1表明系统中的所有设备都已经接收了这个数据或指令;


ERR=1表明系统中有设备没有正常工作。


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


主端口(host interface)可以通过对BOERR位进行查询,也可以通过设置BO IEERR IE位使得这些事件自动产生中断。(两种方式:查询、中断)


 


2.       如何发送EOIEOS


方法一:将字节写入CDOR之前,写入Send EOI指令(向auxcr寄存器写入0x08);


        这一指令的作用:使得下一个数据字节传输完成后EOI信号线自动变高;


方法二:设置XEOSACCRA[3]=1,当CDOR中的字节值与EOSR中设置的值相同时,EOI线将自动置高;


 


方法三:直接向CDOR中写入EOS码。


 


3.       T1 Delay有关的问题:


T1 Delay的定义:在GPIB端口数据传输的过程中,NAT9914作为讲者驱动数据字节到DIO[8-1]信号线上,经过一定的延迟(称为T1 Delay),NAT9914DAV为低向听者表明数据字节已经被放置到DIO[8-1]信号线上。


 


关于T1 Delay的设置,目前先不设ustd, vstdlstdl,先设为缺省值2000ns,等系统功能初步实现后,再琢磨如何提高传输速度。


 


4.       nbaf: auxiliary command0x05),New Byte Available False


nbaf强制将本地消息nba(new byte available)置为false,这个动作将禁止NAT9914发送CDOR中最后写入的字节。这一命令在下面的情形中有用:


NAT9914作为一个讲者,而CDOR中刚被写入一个字节。在讲者将要发送CDOR中的字节数据之前,控者发出了ATN信号。正常情况下,当控者撤销ATN信号后,讲者会继续发送CDOR中的字节数据。如果控者发出ATN信号后,CDOR中的字节数据已经不再需要了,可以使用nbaf来取消这次传输。


 


5.       接收GPIB数据消息的基本流程(from nat9914_rm):


(1)    NAT9914被编程或寻址为活动听者(设置ISR1中的MA位与ADSR中的LA位);


(2)    执行rhdfRelease RFD Holdoff)的辅助命令,释放所有挂起的RFD Holdoff


(3)    等待BI位为1


(4)    读取DIR寄存器中的值作为接收到的字节数据;


(5)    如果设置了BI IE位,则接收到数据后产生中断信号。


 


6.       接收ENDEOS信息


END位(ISR0[3])表明NAT9914作为听者已经接收到一个ENDEOS消息。


 


END消息:讲者置EOI信号线;


EOS消息:


如果NLENIMR2[5]=1,“新行”(new line)字符(0x0A)代表EOS消息;


如果REOSACCRA[2]=1EOSR中的值代表EOS消息。


如果接收到上述字节数据,END位将被置为有效。


 


现在已知END位有效,怎样判断是上面的哪种情况发生呢?


查询NL位(ISR2[5])与EOS位(ISR2[4])。如果NL位有效,说明NAT9914接收到一个new line字符;如果EOS位有效,说明REOS=1并且NAT9914接收到的字符与EOSR寄存器中的内容相同。


 


7.       最终数据字节的RFD holdoff


在一个GPIB读操作过程中,可能需要在读一个数据字符串的最后一个字节时执行RFD holdoff。如果最后一个字节读取时EOI有效或者该字节为EOS字符,那么在NAT9914被编程为RFD Holdoff On End模式(通过hlde辅助命令实现)的情况下,RFD Holdoff自动发生。


 

    如果不知道讲者在发送最后一个字节时是否置EOI有效或者接收接收字节是否匹配EOS字符,可以将NAT9914编程为RFD Holdoff On All模式(通过hlda辅助命令实现)。在RFD Holdoff On All模式下,只要接收到GPIB讲者发送的数据字节,NAT9914将执行RFD  holdoff
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条