WIEGAND 使用

简介

Wiegand(韦根)协议是由摩托罗拉公司制定的一种通讯协议,它适用于涉及门禁控制系统的读卡器和卡片的许多特性;其协议并没有定义通讯的波特率、也没有定义数据长度韦根格式主要定义是数据传输方式:Data0和Data1两根数线分别传输0和1.现在应用最多的是26bit,34bit,36bit,44bit等等。

_images/RS485.png

_images/D0_D1.jpg

调试方法

Face-RK3399的RS485端口是可以复用为韦根协议发送端口从而进行数据的传输。

DTS配置

在 kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-face.dtsi 文件中定义韦根节点,具体定义如下:

wiegand-gpio {
    compatible = "firefly,wiegandout";
    level_effect = <1>;/*0-low effect 1-high effect*/
    gpio_d0 = <&gpio1 9 GPIO_ACTIVE_HIGH>;
    gpio_d1 = <&gpio1 10 GPIO_ACTIVE_HIGH>;
    gpio_mode_switch = <&gpio1 17 GPIO_ACTIVE_HIGH>;
    status = "okay";
};

在设备端输入命令:

echo 0 > /sys/devices/platform/wiegand-gpio/mode_switch //切换为韦根接口功能
echo 卡号 > /sys/devices/platfrom/wiegand-gpio/wiegand26 //发送韦根26数据
echo 卡号 > /sys/devices/platfrom/wiegand-gpio/wiegand34 //发送韦根34数据

韦根接口也可作为普通输入输出IO口:

# 拉高D0
echo 1 > /sys/devices/platform/wiegand-gpio/D0
# 拉高D1
echo 1 > /sys/devices/platform/wiegand-gpio/D1