OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2785|回复: 4

记一次“破解”上位机与下位机之间的通信

[复制链接]

35

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
金钱
331
注册时间
2016-10-12
在线时间
53 小时
发表于 2023-6-28 09:43:01 | 显示全部楼层 |阅读模式
记一次“破解”上位机与下位机之间的通信:
1、BOSS要求:一台机器里面的主控部份自己做,最关键的一块,是对一个加热器的控制,无资料、无丝印、无人教,这也就是三无产品。
2、从主控芯片出来,接了一个芯片,你没猜错,是没丝印的,不知道做啥用,然后这个芯片引出引脚,接加热器。引脚上印了G,R,T。对我们来说,这不就是串口常用的接口嘛,感觉吃到了豆腐,心里美起来了。
3、PC机打开,接上USB_TTL,先接G、T脚,打算采样串口发出的信号。开机后,果然有了数据,这也太简单了……
4、然后接G、R脚,也有数据,说明加热模块有了反馈,一切尽在“掌控”之中。
5、断开主控板,将刚才采样的信息,发到加热模块,美美的等反馈信息回来,然而,啥也没有,这不对啊?
6、主控芯片出来不是有一块芯片吗?会不会是TTL转232啊?应该不会,如果是232信号,那我的USB_TTL不能收到信息啊,不放心,检查了空闲电平,是5V,那也确定了不是232,而是TTL信号。
7、上逻辑分析仪,看一看波形,再做分析。接好设备,开机,啪的一声,电脑关了、分析仪里一个火花……,这下完了,后来重新开电脑,烧了一个USB口,其它还好,逻辑分析仪拆开看,主芯片被“开颅”,挂了……心痛的感觉出来了,仔细检查线,没问题啊,至今不明白为何这样。
8、基于干这活,风险太大,不敢在台式机上搞了,找了台过期的电脑,勉强可以看串口信息,先假设之前是因为台式机的电源地和这台设备的电源地之间有电压,造成炸机,所以这次,旧笔记本用电池,不接市电,在连接前,用万用表检查两个地之间,没有电压差,通信线之间也是正常压差,才敢连接。
9、几天的测试下来,同样的结果,控制板给的信息,用串口助手发出去,依然得不到任何回应。
10、还是得逻辑分析仪啊,没它,我无法进行,马上拍了一个,苦等到货……
11、分析仪终于到了,同样是旧笔记本、同样是检查电平,没问题,开始分析。
12、得到第一张波形图,就像心内科主任一样,分析这些起起浮浮的波形,无数个1和0组成的信息写在纸上,组合好后发现,和我之前用串口助手得到的信息是一样的,只是多了一位(发送方如果多一位,接收方只接前面的信息,这一位不影响接收信息的)。心想,这好理解嘛,肯定是检验位,可是,当我多分析几个字节的时候,发现这个校验位不对,用奇检验和偶校验都不对,那问题出在哪呢?
13、做学问,“大胆猜想,小心求证”一直是我的座右铭,既然不是检验位,那会不会是9位数据的串口呢?找了几款串口助手软件,都不支持9位数据,那自己写一个,可是,C++Builder也不支持9位,其它编程软件不熟,就放弃了。
14、自己动手用单片机写一个9位串口,查了资料,STC8的串口,支持9位串口的,写了个测试程序,自发自收测试,确实能正常处理9位串口通信了,上逻辑分析仪,得到的波形和主控板一样
15、接上加热器,把之前用串口收到的数据,用单片机发出去……还是没动静!!!!
16、想半天,明白点什么了,之前串口助手收到的是8位数据,它省掉了一位第9位啊,又开启“心内科主任”模式,把少了的一位加上,这些数据用单片机发往加热器,呜的一声,听到了风扇转声,并且也收到了回应,这一步终于走通了!
17、现在推想主控芯片出来那块芯片的作用,应该是3.3V电平与5V电平信号的一个转换。
18、感想:生产这台机器的厂家,牛了,居然用9位串口来通信,这在我的认知里,是百分之一的几率啊,不知是不是故意挖坑。另外,那次炸机的原因,到现在也没完全清楚具体原因,先按两个地之间存在高的电势差来理解吧。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

3281

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8206
金钱
8206
注册时间
2020-5-11
在线时间
3700 小时
发表于 2023-6-28 10:05:17 | 显示全部楼层
电脑\USB的地与220V插板的地是相通的,机器的地可能相对插板的地有压差.
大部分串口协议都是8位数据\无校验\1位停止位;
但是也有少数是有奇\偶校验,有的是2位停止位,
还遇到一个首字节校验位置1\其余字节校验位置0的.
还遇到一个波特率不在串口控件(mscomm)的范围内的.
专治疑难杂症
回复 支持 反对

使用道具 举报

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4133
金钱
4133
注册时间
2018-5-14
在线时间
902 小时
发表于 2023-6-28 10:11:32 | 显示全部楼层
这哪里是破解,随便加个异或校验就GG,这是别人没设防线而已。
回复 支持 反对

使用道具 举报

35

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
金钱
331
注册时间
2016-10-12
在线时间
53 小时
 楼主| 发表于 2023-6-28 10:15:24 | 显示全部楼层
姚先起 发表于 2023-6-28 10:11
这哪里是破解,随便加个异或校验就GG,这是别人没设防线而已。

见笑了,对自己来说有点难,不能与高手相比。还好破解两字打了引号。
回复 支持 反对

使用道具 举报

35

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
金钱
331
注册时间
2016-10-12
在线时间
53 小时
 楼主| 发表于 2023-6-28 10:20:47 | 显示全部楼层
LcwSwust 发表于 2023-6-28 10:05
电脑%uSB的地与220V插板的地是相通的,机器的地可能相对插板的地有压差.
大部分串口协议都是8位数据\无校验 ...

看来您的经历也不少,也许我遇到的,也是可变奇偶的,但我按9位来处理,结果相同。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 06:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表