以下RS485接口的演示过程均在盈鹏飞嵌入式AHD-T507主板上进行,如果其他公司主板,可能略有区别。
AHD-T507简要介绍如下:
AHD-T507产品特性 :
- 采用Allwinner公司Cortex-A53四核T507处理器,运行最高速度为1.5GHZ;
- 支持Mali-G31 MP2 GPU,支持OpenGL ES 3.2/2.0/1.0, Valkan 1.1,OpenCL 2.0
- 支持4K/25fps H.264视频编码,支持4K/15fps MJPEG编码;
- 多格式4K/60fps视频解码 (H.265,H.264,VC-1, MPEG-1/2/4, VP8) ;
- 支持双屏异显;支持RGB666/LVDS,分辨率最高1920x1080/60fps;支持HDMI 2.0A, 分辨率最高4K/60fps;支持TV CVBS OUT(NTSC/PAL);
- 支持1-2G Bytes LPDDR4 SDRAM;
- 支持EMMC 4G-64G大容量电子盘,可启动;
- 支持SDIO3.0,5路USB2.0 HOST和一路OTG,1路I2C,4路RS485, 2路PWM(应用于背光)
- 支持双路以太网,一路10/100M;一路10/100/1000M;
- 支持3G/4G通信;
- 支持6路AHD视频输入;
- 稳定的操作系统的支持,可预装Android10.0/LINUX 4.9/UBUNTU 20.04;
- 尺寸为:146*132MM
RS485测试
AHD-T507有四个通过spi扩展的串口,可以配置成2路RS232+2路RS485;
也可以配置成为4路RS485。我们本次测试把这四路串口都配置为RS485,跳线配置如下:
J3的3-5短接;4-6短接;
- 计算机的相关准备
开始测试之前,如果是第一次使用Kit-CP2105转接板,需要去Silicon Labs官网下载此芯片对应的安装驱动CP210x USB to UART Bridge VCP Drivers - Silicon Labs (silabs.com),确保Kit-CP2105转接板连接到PC端,电脑能够正确识别到设备
由上图可以看到,转接板已经正确连接,并可以识别到两个串口设备,增强型串口(COM12)和标准串口(COM11)。
本次测试采用增强型串口(COM12)进行测试,同时需要把转接板上的工作模式设置为RS485模式,具体设置如下:
拨码开关SW1的第1开关位处于OFF状态同时第2开关位处于ON状态(USB-to-RS485模式)。(也可以采用标准串口测试,需要确认转接板上的工作模式拨码开关SW1的的第3开关位处于OFF状态同时第4开关位处于ON状态。)
连接工作准备好后,开始进行测试工作。串口测试在电脑端要借助串口调试小助手,在电脑上打开串口调试小助手,波特率设为115200,8N1,无校验位,并建立串口连接,如下图所示。
2. 各RS485接口对应的linux节点及测试方法
计算机的测试环境准备好后,还需要确认主板的测试环境,首先主板务必有四个串口节点(ttysWK0-3),一般可以在系统的终端启动信息中看到如下:
[ 1.258771] wk2xxx_init: SPI driver for spi to Uart chip WK2XXX, etc.
[ 1.261507] wk2xxx_init: V2.40 On 202x.0x.xx
[ 1.265988] enter wk2xxx_spi_rst_parse_dt.!!!!
[ 1.376900] out wk2xxx_spi_rst_parse_dt.!!!!
[ 1.393563] wk2xxxspi1 spi1.0: setup mode 0, 8 bits/w, 10000000 Hz max --> 0
[ 1.393777] wk2xxx_probe(0x30) GENA = 0x30
[ 1.393924] wk2xxx_probe(0x35) GENA = 0x35
[ 1.394053] wk2xxx_probe(0x3f) GENA = 0x3F
[ 1.394171] wk2xxx_irq_gpio: 233, irq: 218
[ 1.394826] wk2xxx_serial_init.
[ 1.398028] ttysWK0 at I/O 0x1 (irq = 218, base_baud = 921600) is a wk2xxx
[ 1.405176] ttysWK1 at I/O 0x2 (irq = 218, base_baud = 921600) is a wk2xxx
[ 1.412006] ttysWK2 at I/O 0x3 (irq = 218, base_baud = 921600) is a wk2xxx
[ 1.418850] ttysWK3 at I/O 0x4 (irq = 218, base_baud = 921600) is a wk2xxx
出现以上信息,表示扩展的4路串口已经可以正常工作。
下表是RS485接口的定义和Linux设备号的对应,同时也给出了对应的测试方法:
RS485接口 | 设备号 | 测试方法 |
CN35(1A-2B) | ttysWK0 | RS485是半双工的,测试方法是采用计算机和主板相互发送数据并确认收到数据和所发数据一致,表示RS485接口通信正常。 具体操作方法如下: 测试主板发送数据是否正常:主板通过软件发送数据给计算机,计算机收到数据并显示出来,主板发送的数据和计算机接收到的数据一致,表示主板发送数据正常; 测试主板接收数据是否正常:计算机通过串口工具发送数据给主板,主板收到的数据和计算机发来的数据一致,表示主板收收数据正常; 注意:主板的RS485接口不可同时收发数据。 |
CN35(3A-4B) | ttysWK1 | |
CN36(1A-2B) | ttysWK2 | |
CN36(3A-4B) | ttysWK3 |
说明:CN35(1A-2B)表示CN35的1脚是485A信号,2脚是485B信号;CN35(3A-4B) 表示CN35的3脚是485A信号,4脚是485B信号;同理CN36。
3. 主板RS485接口与计算机相连
根据以下连接示意图,通过Kit-CP2105转接板连接开发板和电脑(以下示意的是一路RS485的连接)。
4. AHD-T507主板上的串口工具ComAssintant
该串口调试工具,可以同时对四个串口读写是四个独立的线程,选定串口路径,Linux把每个硬件看作是一个文件,所以都是“dev/ttyGS1”这种文件名。每个串口有自己单独的发送区,4个串口共享一个数据接收区,在接收数据时,数据信息前会有特定标识,这个标识会确认该数据从哪个串口来。另外,每个串口可以分别设置波特率,同时还可以设置自动发送数据,调试非常方便。