-
-
[原创]Tenda AC6 实机拆解与UART串口的区分方法
-
发表于: 8小时前 127
-
前言
本文介绍Tenda AC6路由器实机拆解,区分UART串口以及使用USB to TTL、JTAGulator等工具进行测试和连接
具体型号如下所示

拆开Tenda AC6在下方可以看到四个连在一起的孔就是我们的UART口

下面介绍两种方法用于区分UART的串口
方法一:万用表测量
- 将万用表调节到蜂鸣档(在电阻档下面)
- 将黑色笔接在PCB板的金属块位置(可以是任意导电部位,我选择的是锡焊电线的地方)
- 红色笔在4个PIN之间移动,如果电表发出响声,则认为该pin脚为GND
以图中为例,左侧第一个孔响而其他孔不响,所以左侧第一个孔为GND串口
之后使用适配电源对路由器PCB板进行通电

下面开始对RX和TX以及VCC口的测试
- 将万用表调节到20v直流电压档位
- 将黑色笔放在刚刚测出的GND上
- 然后将红色笔一个个放在不同的孔上进行测试,电压最大的就是VCC孔,电压一直变化的则是TX孔
但是这里出现了一个问题,不知道是不是笔者的姿势不对或者别的原因,笔者测出的结果是从左2到左4的结果依次是 3.26v、3.27v、3.28v,并且笔者每个孔都放置了将近1min,电压没有任何变化,以此导致笔者无法区分出其他串口
下面是其他区分方法
- 如果其中一个引脚的焊接处呈现正方形,则该引脚是VCC
- 通过万用表测试RX和VCC的电压,一般而言,VCC的电压会稍高几毫伏
- 在设备启动过程中,VCC的电压恒定不会波动,而RX会有几毫伏的波动
笔者猜测左4的正方形应该就是VCC口,当然这样依旧没有办法完全确认,于是笔者用了个损招,直接使用杜邦线将GND和各个串口短接,如果是VCC口,那么路由器就会短路然后触发重启,但是为什么是损招,因为笔者之前对着小米路由器用的时候发现居然冒出了火花,但是这款Tenda路由器并没有这么强烈的反应,不知道会不会对路由器造成什么损害,但是总归是确认了那个方框就是VCC
然后就需要区分TX和RX
- 将万用表调节到20v直流电压
- 黑色笔放在GND上
- 红色笔放在不同的孔上,然后重启路由器,电压稳定的是RX,电压变化的是TX
用这个方法可以测出左2是RX,左3是TX,还是比较明显的,左2的电压一直在3.27-3.28,但是左3的电压在3.28-1.5之间不断变化。
下面使用 FT232 USB to TTL 测一下验证一下结论
如下所示,使用杜邦线将USB to TTL的RXD和TXD连接起来,然后使用SSCOM来测试一下这个USB to TTL是否完好
显然测试结果是它是好的


然后我们使用它来对我们的串口做一个简单的测试
注意USB to TTL的TX应该要接在路由器的RX上,也就是左2,那么USB to TTL的RX就要接在左3上,然后GND对应GND,VCC不需要连接,具体如下所示(笔者没有焊接,直接使用杜邦线连接,只要插得紧和焊接效果应该是一样,如果插不紧那就只能焊接一下了)
然后使用SSCOM软件进行连接,这里多次实验后得知笔者手头这款Tenda AC6路由器的波特率是 38400
每次修改波特率之后需要重启一下路由器,最后没有乱码,并且最后出现CIL就意味着成功了
下面是重启路由器后输出的内容

出现CLI输入?就可以得知路由器中有哪些命令了

使用SecureCRT的界面更好看一点(两个不能同时用,一个占用端口另外一个就用不了了)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | CLI> ?Realtek's command:Commands Descriptions Usage -------- ------------ -----db db <Address> <Len> dw dw <Address> <Len> eth eth wlan0 wlan0 wlan0-va0 wlan0-va0 wlan0-va1 wlan0-va1 wlan0-va2 wlan0-va2 wlan0-va3 wlan0-va3 wlan0-vxd wlan0-vxd wlan1 wlan1 wlan1-va0 wlan1-va0 wlan1-va1 wlan1-va1 wlan0-va2 wlan0-va2 wlan1-va3 wlan1-va3 wlan1-vxd wlan1-vxd eb eb <Address> <Value1> <Value2>... ew ew <Address> <Value1> <Value2>... alg alg brconfig brconfig cat cpuload cpuload date show system local time excep cause exception fastpath fastpath getmib getmib help Displays a list of commands ? Displays a list of commands hexcat dump Shows a memory dump hw_nat hw_nat ib ib idd idd ifconfig ifconfig ipfw ipfw irf irf iw iw iwpriv iwpriv ll mac mac <ifname> [mac addr] mroute mroute ob ob od od orf orf ow ow pdump dump a thread ping ping port_fwd port_fwd version Shows build version ps Shows a list of threads reboot Reset the system reinit reinit reinit_test reinit_test reset Reset the system route set static route rssi rssi alias show alias table rtl_vlan rtl_vlan sp Sets a threads priority [thread ID] setmib setmib show show tcpstats tcpstats test_skb test_skb kill Kills a running thread [thread ID] release Break a thread out of any wait [thread ID] trigger_port trigger_port uptime Shows system uptime watchdog on/off/res/reboot Tenda's command:msg ce_power app_debug build stat_link link_status iwpriv realtek splx thread mbuf debug route et wlconf fw ping ifconfig syslog time tenda_arp arp envram nvram restart reboot CLI> |
方法二:使用JTAGulator来识别
如下所示,GND连接GND,假装我们未知TX和RX随便连接两个接口,VCC不进行连接

同样使用SecureCRT进行连接
然后选择V设定电压为3.3v

然后使用U进行检测

在输出的结果里面可以看到当7号接口(路由器的左3)为TX,6号接口(路由器的左2)为RX,并且波特率为38400的时候可以输出有意义的字符串 Unknown
因此我们可以知道路由器的左2为RX,左3为TX,并且波特率为 38400

显然JTAGulator的优点就是非常方便,只需要测出GND然后其他随便连接在接口上就可以了开始测试了
缺点是贵
参考:
UART串口基础及通过万用表定位UART引脚 | kafroc