最近研究了好久FEI那个PICOSYNC-II,试图把它的软件给用起来,因为看软件里它的DDS输出是可调的,这个很有用。大概的情况如下:
关于线序,我给FEI的技术支持发了email,他们给我说用一一对应的串口线(pin to pin),手册上给出的一个图也是这么写的,但我连接后发现软件根本收不到数据,后来换交叉线(2针对3针,3针对2针),PC机的串口才可以收到有规律的报文。可能手册上那个图说的不太明确,它那个直通线指得是将内部串口分离出来的意思。因为PC机串口2针是RX,我用示波器看了一下,这个PICOSYNC-II的串口3针有数据输出。所以用交叉线连接感觉是对的。
用交叉线连接后,串口调试软件有报文了,不同波特率下内容也不同。9600的时候好像最有规律,末位和其中一位每次递增2个数字(HEX)。但是无论什么波特率,PICOVIEW软件均收不到数据。按照FEI工程师的建议,打开软件调试模式更改默认的通信协议到FBIP也没用,更改本身的过程就不起作用,其他的一些菜单比如升级fireware都提示通信失败。但是和不连电缆或串口不工作不一样,说明软件和串口也确实通信了。
后来研究了一下所谓的FBIP协议(FEI自有的通信协议),在手册3.4小节有详细介绍。FBIP协议的格式是这样的:
[SOM][ADDRESS][COMMAND][DATA LENGTH][DATA][CHECKSUM]
用串口助手以16进制比葫芦画瓢的发送了一条查询软件版本的命令:
MB 0x00 FE 00 SUM,即
4D 42 00 00 46 45 00 00 1A,无论什么波特率,均无响应。
到此彻底没办法了。

不知道以上的测试方法是否有误?对于未知波特率的设备,如何选择软件的波特率才知道收到的报文是正确的呢?