常用串口监视软件一览

在工控的开发当中常常要应用到串口,应该说串口通信是最基本的通讯工具。不仅在我们编程的时候可以应用一些简单的串口工具进行调试和监控,在做黑箱分析的时候用这些软件能够将串口的通讯协议抓取下来以便进行分析。

以前我做NOKIA的FBUS协议的分析的时候,就是利用HDDSoft的Serial Port Monitor软件进行抓取数据的,用同样的方法在NOKIA PC Suite上也大获成功。最近使用串口监视的例子是应用在HOLIP变频器的通讯协议的模拟上,其基本功能包括初始化、设置速度、得到速度、关闭变频器几个。通过其他的DEMO程序就能获得串口协议,再通过我们软件的模拟就可以用了。对于我的HOLUX GPS而言,前段时间也知道了它的和电脑的通讯协议,这样我就好写一个程序来获取它存储的轨迹信息了。当然最新的百度地图的更新幅度还是挺大的,连我家门口的路口都改了,但坐标的偏移比较大,要是有一个不偏移的地图就好咯。扯远了,下面来介绍一下我用过的一些软件:

*. HDDSoft Serial Port Monitor
*
最新的产品在这里可以找到(http://www.hhdsoftware.com/Products/home/serial-monitor.html) 我最早用的是Serial Port Monitor 3.x版本,以前还做过这个软件的破解。该软件功能强大,能够支持到API级的分析。但唯一不好的就是没有破解,比较昂贵。但所谓物有所值嘛。最近发现这个API级的分析确实有用。举个例子来说:

最近HOLIP变频器的问题可以说说。当时有一套DEMO程序,可以很顺利的操作,但是我写的软件就不行。协议是一样的,波特率、停止位、奇偶校验也都一样。发了数据以后,返回的数据没几下就混乱了。然后变频器返回的数据全是乱码。我当时都在怀疑.NET 2.0的串口通讯是不是有问题咯。后来仔细对比DEMO程序和我的程序,发现Handshake参数不对。但是我们的485转接器上就RX和TX两根线,没有其他的了。查看了一下串口类的说明,决定试试流控制,看看是不是有问题。

SerilaPort的类有三个Handshake枚举:

None 没有用于握手的控件。
RequestToSend 使用请求发送 (RTS) 硬件流控制。RTS 发出信号,指出数据可用于传输。如果输入缓冲区已满,RTS > 行将被设置为 false。当输入缓冲区中有更多可用空间时,RTS 行将被设置为 true。
RequestToSendXOnXOff 同时使用请求发送 (RTS) 硬件控制和 XON/XOFF 软件控制。
XOnXOff 使用 XON/XOFF 软件控制协议。发送 XOFF 控制以停止数据传输。发送 XON > 控制以继续传输。使用这些软件控制,而不是使用请求发送 (RTS) 和清除发送 (CTS) 硬件控制。

最终,只有RequestToSendXOnXOff才能使连接稳定。很是奇怪。最终可能是变频器的流控制没有自适应,导致上位机和下位机之间的通讯发生错位的。

试想,如果没有这个API级的监控,怎么能够想到握手协议的问题呢。

HDDSoft还有USB监视器等等,如果有需要可以研究研究。

. SUDT SerialTrace

下载地址:http://www.sudt.com/cn/index.html

比较好用的一个软件,国产的,属于小巧玲珑型。SUDT还有很多其他串口相关的软件,可以下载来用用。

还有一些其他开发的小的串口调试助手软件,还是有点用处。只是这些小软件的GUI过于花哨了点(比如背景),建议这些软件作者把软件整的专业点点,呵呵。

另外串口调试还是需要自己的耐心和运气的,特别是协议分析,合理的运用上述软件,事半功倍。

BFBC2 武器全解

终于把BFBC2的所有武器解完了,没追求了,现在是没事在游戏里面拆房子耍,K/D比实在是很低,主要是我对打人没兴趣了,觉得还是拆房子好玩,看怎么拆得快,偶尔能够拆到一两个敌军的,但很多时候把友军的房子拆了……~ 今天还真是热的很,我都只有把电脑降频了用了,要不然那个CPU风扇的声音太大了,相当不爽。
休息休息~

Linux下调节Lenovo U150亮度

自从买了U150以后,集成的GMA X4500MHD的亮度就从来不能调节。最多只能在grub菜单的时候进行调节,很是头痛。在网上大力搜索了一番以后,找到了Y450的童鞋们遇到的相同的问题,这个帖子里面有一个总结并且写了一个脚本来关联用键盘调整的亮度和实际亮度的关系,最核心的东西在于:

sudo setpci -s 00:02.0 F4.B="20"

后面的20是亮度,值从00到FF,十六进制。可以实现255级亮度的调节,还是很理想的。相对于Windows里面的级别更是多了一些。

setpci通过设置pci接口寄存器的值来进行调节,可能Windows里面强行设置pci的寄存器的值也能达到相同的效果。

运行提供的脚本以后,不管怎么说,在linux也能调节了。虽然这样做起来有点别扭。

最后,麦克风和摄像头似乎还是没法驱动。最新的Ubuntu 10.04也没有解决,看来Linux的道路上,驱动和兼容,成了最大的问题。

Ubuntu 10.04 LTS 正式版 分发、下载地址

根据以往的ubuntu分发地址和MD5SUM推测,最新的Ubuntu 10.04的地址为:

http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-alternate-i386.iso
http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-alternate-amd64.iso
http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-netbook-armel+dove.img
http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-netbook-armel+imx51.img
http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-alternate-amd64.iso
http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-alternate-i386.iso
http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-desktop-amd64.iso
http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-desktop-i386.iso
http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-netbook-armel+dove.img
http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-netbook-armel+imx51.img
http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-netbook-i386.iso
http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-server-amd64.iso
http://releases.ubuntu.com/releases/.pool/ubuntu-10.04-server-i386.iso

同志们可以根据这个下载地址进行下载……

Apt-get segmentation fault

今天升级Debian 5的apt-get,结果升级后apt-get一用就segmentation fault,郁闷死。看来是啥子指针出问题了。

这篇文章中提到了一个方法解决:

rm -rf  /var/cache/apt/*.bin

试了一下,果然有用~