我有一个蓝牙传输设备,我的PC(Windows 7)已连接到该设备并进行配置,就好像它是通过RS232串行端口(COM4)连接的。如何捕获蓝牙设备发送的原始数据,或者等效地捕获COM4中接收的原始数据?
我有一个蓝牙传输设备,我的PC(Windows 7)已连接到该设备并进行配置,就好像它是通过RS232串行端口(COM4)连接的。如何捕获蓝牙设备发送的原始数据,或者等效地捕获COM4中接收的原始数据?
Answers:
您可以使用标准的终端程序来捕获不同格式的数据。我建议使用Bray的Terminal,这真的很容易,并且有很多选择!
还是要在某种自己的应用程序中捕获和解释数据?
我发现的最佳解决方案虽然有点粗糙,但是却是Tera Term http://ttssh2.sourceforge.jp/index.html.en。
Bray在Windows 8上不能很好地发挥作用。虽然没有源代码无法确切地说明它在做什么,但看来它正在对注册表设置的位置进行一些假设。
Portmon在Windows 8上也不适合我。
我个人最喜欢的用于调试的终端仿真器是RealTerm,它具有丰富的嵌入式系统显示选项。RS-232和TCP / IP都可以在Windows 7 x64及更低版本下正常运行(我没有在Win 8下尝试过,但是没有任何理由认为它不起作用)。我发现特别有用的一些功能是:
I2C,SPI,Dallas 1-wire和GPIB还有很多其他选择。我没有亲自使用这些功能,但是上面的SourceForge页面上有很好的总结。这是主显示标签视图的屏幕截图:
我也建议Bray,如果您不确定波特率,请打开硬件管理器,浏览至COM端口并选择属性,尽管并非总是准确,但仍在此处列出。
根据您的确切要求,使用微控制器可以捕获数据并为其添加时间戳,然后将其转发到PC可能会有所帮助。以往在典型PC上发现的UART只能够记录准确的定时信息或通过让处理器在字节到达时抓住每个字节而没有缓冲来捕获9位数据。后来的操作系统和驱动程序通常都无法做到这一点,而UART-to-USB芯片在这方面毫无希望。如果您的PC可以以所需数据速率的两倍接收数据,则您可以让微控制器接收字节数据,并为每个字节发送两个字节。第一个字节将设置MSB,在下一个比特中报告传入数据的MSB(如果是9比特,则报告两个MSB),并使用后5位(或4位)来报告自上一个字节的停止位的中间位置以来的时间量(0-30或0-14)(以例如一位时间为单位进行测量)。第二个字节将清除MSB,并包含剩余的7位数据。当没有数据传输时,将每30(或14)位时间发送FF起搏字符。因此,接收这些报告的软件将能够非常精确地(在一比特时间内)重建输入数据的准确时序。如果提供给PC的数据速率是所监视数据速率的四倍,则可以使用这种通用方案将两个接收通道复用到一个PC端口中(使用标头字节的一位来标识它是否包含第一或第二个数据)港口)。虽然将事情精确地计时到一位时间似乎有些多余,但有时它可能会有用,