8.5. 微服务器对外接口文档说明

8.5.1. 介绍

本文档介绍了算能微服务器的对外接口使用方式,提供了通过C语言demo控制和使用命令行控制的方法。

8.5.1.1. C语言demo,可以点击下载demo

  1. led_crtl

    • 本Demo可以通过写入指定文件的值而控制继电器或者输出端口。

    • 本Demo在测试继电器和输出端口章节使用。

  2. uartDemo

    • 本Demo可以打印当前用户可以使用的全部串口,可以发送bytes信号,进行串口的回环测试与两两对测,默认使用9600波特率。

    • 本Demo中封装了检测串口、配置串口、简易的数据分割函数,可以参考源码以使用。

    • 本Demo在测试RS485和RS232章节使用。

  3. key_input

    • 本Demo接受in接口的输入,并将接口输入打印在命令行里。

    • 本Demo在测试输入端口章节使用。

8.5.1.2. 协议介绍

RS232: 是一种串行通信协议,常用于连接计算机和外部设备。它使用传统的电压级别(正负12V)来表示逻辑1和逻辑0,通常使用DB9或DB25连接器。RS232通常用于短距离通信。

RS485: 是一种多点通信协议,适用于在工业环境中连接多个设备。它使用平衡传输,允许两根信号线在不同的电平上传输,以实现差分信号。这种设计使得RS485更具抗干扰能力,并适用于较长距离的通信,可以连接多个设备。

TTL: 是一种数字电平标准,通常用于数字电路之间的通信。它使用0V表示逻辑0,使用约3.3V至5V之间的电压表示逻辑1。TTL通信在数字设备之间进行,例如微控制器、传感器和逻辑处理器之间的通信。

8.5.1.3. IN/OUT 引脚介绍

IN(输入):IN通常表示一个设备或电路的输入引脚。这是信息或信号进入设备或电路的地方。通常,IN引脚接收来自其他设备、传感器或电路的信号或数据,并将其传递给设备的内部电子元件进行处理或操作。

举例:在一个数字电子器件中,IN引脚可能接收外部传感器的数据输入,然后将其传递给微处理器进行处理。

OUT(输出):OUT通常表示一个设备或电路的输出引脚。这是信息或信号从设备或电路输出的地方。通常,OUT引脚从设备的内部电子元件输出已处理或操作的数据或信号,以供其他设备或电路使用。

举例:在一个音频放大器中,OUT引脚可能输出已放大的音频信号,以供连接到扬声器或其他音频设备使用。

8.5.1.4. 继电器介绍

继电器是一种电子开关设备,它能够在一个电路中控制另一个电路的开关状态。继电器的操作基于电磁原理,通过一个电磁线圈控制内部开关的状态。它可以用来隔离电路、放大信号、控制高电流负载,以及实现自动化和远程控制。

继电器包含以下常见接口:

常闭触点(NC - Normally Closed)

  • 端子标记:通常用 NC 表示。

  • 作用:这是一个常闭触点,当继电器未被激活时,这两个端子之间是连接的,允许电流流过。当继电器激活时,这两个端子分开,中断电流通路。

常开触点(NO - Normally Open)

  • 端子标记:通常用 NO 表示。

  • 作用:这是一个常开触点,当继电器未被激活时,这两个端子之间是分开的,电流无法通过。当继电器激活时,这两个端子闭合,允许电流流过。

公共触点(COM - Common)

  • 端子标记:通常用 COM表示。

  • 作用:这是一个中性连接点,用于与常闭触点或常开触点连接。它是电流进出的通用接口。

8.5.2. 微服务器设备端口说明

8.5.2.1. 微服务器外观1

../_images/se5-8.png

图 8.17 微服务器外观1示意图

面板丝印

名称

说明

TX

Debug发送信号

Debug发送信号,需要与RX信号配合使用。

RX

Debug接收信号

Debug接收信号,需要与TX信号配合使用。

A1

RS485正极

RS485接口正极,需要与B1信号配合使用。

B1

RS485负极

RS485接口负极,需要与A1信号配合使用。

A2

RS485正极

RS485接口正极,需要与B1信号配合使用。

B2

RS485负极

RS485接口负极,需要与A1信号配合使用。

IN1

I/O1输入

GPIO1输入,可作为告警输入。

IN2

I/O2输入

GPIO2输入,可作为告警输入。

COM

RELAY公共端子

RELAY接线公共端子。

NO

RELAY常开

RELAY接线常开端子。

NC

RELAY常闭

RELAY接线常闭端子。

12V

DC输出接口

DC输出12V电源接口。

GND

接地信号

凤凰端子接地信号。

8.5.2.2. 微服务器外观2

../_images/se5-16.png

图 8.18 微服务器外观2示意图

面板丝印

名称

说明

TXD

RS232发送信号 | RS232发送信号,需要与RXDRS232信号配合使用。

RXD

RS232接收信号 | RS232接收信号,需要与TXDRS232信号配合使用。

D+

RS485正极

RS485接口正极,需要与D-RS485信号配合使用。

D-

RS485负极

RS485接口负极,需要与D+RS485信号配合使用。

IN1

I/O1输入

GPIO1输入,可作为告警输入。

IN2

I/O2输入

GPIO2输入,可作为告警输入。

OUT1

I/O2输出

GPIO1输出,可作为告警输出。

OUT2

I/O2输出

GPIO2输出,可作为告警输出。

GND

接地信号

凤凰端子接地信号。

8.5.2.3. 微服务器外观3

../_images/se7.png

图 8.19 微服务器外观3示意图

面板丝印

名称

说明

RS232

RS232接口

RS232接口

RS485

RS485接口

RS485接口

8.5.3. 测试RS232使用说明

本章节根据具体的算能微服务器提供了回环测试和两两对测的详细接线示例及结果展示,注意此示例仅供参考,接线方式并不唯一,并没有提供所有接线方式的组合。

8.5.3.1. 回环测试

1.首先需要准备一台具有RS232串口的算能微服务器,不限于 微服务器设备端口说明 中的设备,以下章节中包含对应专有名词,请在使用前仔细阅读设备端口说明。

2.通过网络或串口线连接上微服务器并打开两个终端,并在两个终端使用如下命令,然后重新登陆。让linaro用户获取串口操作权限。否则请全程使用sudo或在root用户下操作:

sudo usermod -aG tty linaro
sudo usermod -aG dialout linaro

3.将uartDemo.c拷贝到微服务器,并执行以下命令编译得到uartDemo。

gcc uartDemo.c -o uartDemo

4.在任意终端查看串口信息,使用以下命令检查当前系统可以使用的串口路径。

./uartDemo -p

5.并根据以下说明找到设备串口与路径的对应关系。

一般 微服务器外观2 的RS232接口信息如下:

  • RXD,TXD 为设备RS232接口,对应串口设备路径/dev/ttyS2,用作对外RS232接口,协议RS232。

一般 微服务器外观3 的RS232接口信息如下:

  • RS232 为设备RS232接口,对应串口设备路径/dev/ttyS1,用作对外RS232接口,协议RS232。需要您准备一个RS232转接头,引出RX和TX接口。

6.将算能微服务器设备串口的发送信号与接收信号连接,具体接线连接方式如下。

../_images/RS232_circle.png

图 8.20 RS232回环测试接线示例

7.选择微服务器上打开的两个终端,选择其中一个终端为发送端,使用-r参数指定;另一个为接收端,使用-t参数指定。

./uartDemo -[r/t] <串口设备路径>

8.检查两个终端的输出,接收端输出带有–> Validation-successful ←表示验证完成,结果如下。

../_images/RS232_circle_result.png

图 8.21 微服务器外观2 RS232回环测试结果

8.5.3.2. 两两对测

1.首先需要准备两台具有RS232串口的算能微服务器机器1、2,不限于 微服务器设备端口说明 中的设备,以下章节中包含对应专有名词,请在使用前仔细阅读设备端口说明。

2.通过网络或串口线分别连接两台微服务器并各自打开终端,并在两个终端使用如下命令,然后重新登陆。让linaro用户获取串口操作权限。否则请全程使用sudo或在root用户下操作:

sudo usermod -aG tty linaro
sudo usermod -aG dialout linaro

3.将uartDemo.c拷贝到微服务器,并执行以下命令编译得到uartDemo。

gcc uartDemo.c -o uartDemo

4.分别在两台设备的终端查看串口信息,使用以下命令检查当前系统可以使用的串口路径。

./uartDemo -p

5.并根据以下说明找到设备串口与路径的对应关系

一般 微服务器外观2 的RS232接口信息如下:

  • RXD TXD 为设备RS232接口,对应串口设备路径/dev/ttyS2,用作对外RS232接口,协议RS232

一般 微服务器外观3 的RS232接口信息如下:

  • RS232 为设备RS232接口,对应串口设备路径/dev/ttyS1,用作对外RS232接口,协议RS232。需要您准备一个RS232转接头,引出RX和TX接口。

6.将机器1设备串口的发送信号与机器2接收信号连接,再将机器2设备串口的发送信号与机器1接收信号连接,具体接线连接方式如下。

../_images/RS232_2.png

图 8.22 微服务器外观2与微服务器外观3 RS232两两对测接线示例

7.把机器1的终端当作发送端,使用-r参数指定,机器2当作接收端,使用-t参数指定。

./uartDemo -[r/t] <串口设备路径>

8.检查两个终端的输出,接收端输出带有–> Validation-successful ←表示验证完成。

../_images/RS232_2_result.png

图 8.23 RS232两两对测测试结果

9.ctrl+c分别中止以上命令,同理,将机器2设备串口的发送信号与机器1接收信号连接,再将机器1设备串口的发送信号与机器2接收信号连接,具体接线连接方式如下。

10.把机器2的终端当作发送端,使用-r参数指定,机器1当作接收端,使用-t参数指定。

./uartDemo -[r/t] <串口设备路径>

11.检查两个终端的输出,接收端输出带有–> Validation-successful ←表示验证完成。

8.5.4. 测试RS485使用说明

8.5.4.1. 两两对测

由于RS485使用差分信号进行一对多通讯,所以不能通过短接进行回环测试。

1.首先需要准备具有RS485串口的两台算能微服务器或者一台具有二个RS485串口的算能微服务器,分别对应串口1、2,不限于 微服务器设备端口说明 中的设备,以下章节中包含对应专有名词,请在使用前仔细阅读设备端口说明。

2.通过网络或串口线分别连接二个接口对应的微服务器并各自打开终端,并在两个终端使用如下命令,然后重新登陆。让linaro用户获取串口操作权限。否则请全程使用sudo或在root用户下操作:

sudo usermod -aG tty linaro
sudo usermod -aG dialout linaro

3.将uartDemo.c拷贝到微服务器,并执行以下命令编译得到uartDemo。

gcc uartDemo.c -o uartDemo

4.分别在两台设备的终端查看串口信息,使用以下命令检查当前系统可以使用的串口路径。

./uartDemo -p

5.并根据以下说明找到设备串口与路径的对应关系,对应微服务器串口可以在 微服务器设备端口说明 章节查找。

一般 微服务器外观1 的RS485接口信息如下:

  • A1 B1 为设备RS485串口,对应串口设备路径/dev/ttyS1,用作对外RS485接口,协议RS485

  • A2 B2 为设备RS485串口,对应串口设备路径/dev/ttyS2,用作对外RS485接口,协议RS485

一般 微服务器外观2 的RS485接口信息如下:

  • D+ D- 为设备RS485串口,对应串口设备路径/dev/ttyS1,用作对外RS485接口,协议RS485

一般 微服务器外观3 的RS485接口信息如下:

  • RS485 为设备RS485串口,对应串口设备路径/dev/ttyS2,用作对外RS485接口,协议RS485。

注意微服务器外观3的RS485接口为db9接口,需要您准备一个RS485转接头,引出RX和TX接口。RX,TX接口分别为RS485的正极和负极。

6.将接口1 RS485正极与接口2 RS485正极连接,再将接口1 RS485设备串口的负极与接口2 RS485负极连接,具体接线连接方式如下。

../_images/RS485_2.png

图 8.24 微服务器外观1 RS485两辆对测接线示例

7.把接口1对应的终端当作发送端,使用-r参数指定,接口2对应的终端当作接收端,使用-t参数指定。

./uartDemo -[r/t] <串口设备路径>

8.检查两个终端的输出,接收端输出带有–> Validation-successful ←表示验证完成。

../_images/RS485_2_result.png

图 8.25 RS485两两对测测试结果

9.ctrl+c分别中止以上命令,同理,将接口2 RS485正极与接口1 RS485正极连接,再将接口2 RS485设备串口的负极与接口1 RS485负极连接,具体接线连接方式如下。

10.把接口2对应的终端当作发送端,使用-r参数指定,接口1对应的终端当作接收端,使用-t参数指定。

./uartDemo -[r/t] <串口设备路径>

11.检查两个终端的输出,接收端输出带有–> Validation-successful ←表示验证完成。

  • 备注:

    1. 以上测试也可以选择使用minicom工具进行简单测试,步骤如下,使用minicom代替uartDemo工具,和上面步骤类似。

    sudo apt-get install minicom
    

    在发送端和接收端进入minicom

    minicom -D /dev/ttyS串口号 -b 9600
    

    在发送端输入便可以在输出端看到输出,验证完成。

    1. 也可以通过 dmesg | grep ttyS* 查看可用串口路径,串口描述如上述步骤。

8.5.5. 测试IN使用说明

1.需要准备一台具有in接口的算能微服务器机器,不限于 微服务器设备端口说明 中的设备,以下章节中包含对应专有名词,请在使用前仔细阅读设备端口说明。

2.通过网络或串口线连接对应的微服务器并打开终端。

3.正确连接电路,可以外接电源正极连接in接口,负极连接地线,通过按钮/开关控制。

../_images/in_.png

图 8.26 in接口接线图

4.执行以下命令便可以监听设备。

sudo apt-get install evtest
sudo evtest /dev/input/event1
../_images/in_evtest.png

图 8.27 evtest检测结果示意图

或者使用 key_input 监听设备。

  1. 获取key_input.c ,复制到服务器上。

  2. 编译gcc key_input.c -o key_input获得可执行程序。

  3. sudo ./key_input就可以测试GPIO1获取读取输入电平。

../_images/in_demo.png

图 8.28 demo检测结果示意图

8.5.6. 测试OUT使用说明

1.需要准备一台具有out接口的算能微服务器机器,不限于 微服务器设备端口说明 中的设备,以下章节中包含对应专有名词,请在使用前仔细阅读设备端口说明。

2.通过网络或串口线连接对应的微服务器并打开终端。

3.设置输出电平:

  • 命令行执行:

    • OUT1接口

    sudo su
    sudo echo 1 > /sys/class/leds/gpio5/brightnes
    

    此时,使用电压表测量电阻档可以连接OUT1和地线,发现电路是通的。

    • OUT2接口

    sudo su
    sudo echo 1 > /sys/class/leds/gpio6/brightness
    

    此时,使用电压表测量电阻档可以连接OUT2和地线,发现电路是通的。

  • 也可以使用本章提供的 led_ctrl C语言demo来设置输出电平:获取 led_ctrl.c ,复制到服务器上;并编译获得可执行程序,编译及运行命令如下:

    • OUT1接口

    gcc led_ctrl.c -o led_ctrl
    ./led_ctrl 1 5
    

    此时,使用电压表测量电阻档可以连接OUT1和地线,发现电路是通的。

    • OUT2接口

    gcc led_ctrl.c -o led_ctrl
    ./led_ctrl 1 6
    

    此时,使用电压表测量电阻档可以连接OUT2和地线,发现电路是通的。

8.5.7. 测试继电器使用说明

1.需要准备一台具有继电器接口的算能微服务器机器,不限于 微服务器设备端口说明 中的设备,以下章节中包含对应专有名词,请在使用前仔细阅读设备端口说明。

2.通过网络或串口线连接对应的微服务器并打开终端。

3.设置继电器开关:

  • 命令行执行:

sudo su
echo 0 > /sys/class/leds/gpio7/brightness#正极连接常闭端子,测试电路是通的,正极连接常开端子,测试电阻,电路不通。
echo 1 > /sys/class/leds/gpio7/brightness#正极连接常开端子,测试电路是通的,正极连接常闭端子,测试电阻,电路不通。
  • 也可以使用本章提供的 led_ctrl C语言demo来设置继电器开关:获取 led_ctrl.c ,复制到服务器上;并编译获得可执行程序,编译及运行命令如下:

gcc led_ctrl.c -o led_ctrl
./led_ctrl 0 7#正极连接常闭端子,测试电路是通的,正极连接常开端子,测试电阻,电路不通。
./led_ctrl 1 7#正极连接常开端子,测试电路是通的,正极连接常闭端子,测试电阻,电路不通。