智芯微版的智能融合终端的驱动程序详细说明

1  驱动程序详细说明

按照硬件相关功能性能需求,在理论和实际应用测试基础上展开驱动程序详细说明。

1.1  GPIO与中断

GPIO与中断共用同一设备节点,/dev/gpio_sg,通过 IOCTL 对IO和中断进行访问、控制。简单代码示例如下:

 

使用时,使用 fd = open(gpiodrv, O_RDWR|O_NOCTTY|O_NDELAY) 打开 /dev/gpio_sg 设备,正常打开后,即可通过 ioctl 进行操作了。其中 gpio_idx 为IO的枚举序号,具体GPIO和中断枚举说明如下:

GPIO枚举说明

序号

GPIO

枚举代号

枚举数

功能说明

1

PB09

ltepw

0

LTE模块电源控制,0开,1关

2

PH17

lterst

1

LTE模块电源控制,0低,1高,常态为高,低电平有效

3

PH16

lteonf

2

LTE模块ON/OFF控制,0低,1高,常态为高,低电平有效

4

PH15

ltepctrl

3

LTE加热引脚,0低,1高,常态为低,高电平有效

5

PB08

uart1ms

4

RS232/RS485可切换串口1模式切换IO

6

PG09

uart2ms

5

RS232/RS485可切换串口2模式切换IO

7

PF01

mcu1rst

6

MCU1重置IO

8

PD06

mcu2rst

7

MCU2重置IO

9

PH24

plcrst

8

载波模块重置IO

10

PD02

leduartm1

9

RS232/RS485可切换串口1模式指示灯

11

PH06

leduartm2

10

RS232/RS485可切换串口2模式指示灯

12

PB02

lte2rst

11

LTE2重置IO

13

PB03

lte2onf

12

LTE2 ON/OFF 控制IO

14

PH27

plc12v

13

载波12V控制IO

15

PH18

usbuartrst

14

USB转串口重置IO

16

PH19

blerst

15

BLE蓝牙重置IO

17

PH25

encryptrst

16

加密模组重置IO

18

PH23

blects

17

BLE蓝牙CTS

19

PH21

ledrsv1

18

预留LED1

20

PH22

ledrsv2

19

预留LED2

中断枚举说明

序号

GPIO

枚举代号

枚举数

功能说明

1

PH11

uart1msk

0

RS232/RS485可切换串口1模式选择按键中断

2

PH10

uart2msk

1

RS232/RS485可切换串口2模式选择按键中断

3

PH08

plcplg

2

载波模块插入检测中断

4

PH02

lteplg

3

4G模块插入检测中断

5

PH13

exethintr

4

外部中断

6

PH00

pt100intr

5

pt100中断

 

目前支持的 IOCTL 信号如下:

#define TGPIO_IOC_MAGIC         'T'

#define TGPIO_IOC_GETVAL        _IOR(TGPIO_IOC_MAGIC, 1, __u8)

#define TGPIO_IOC_GETSTA        _IOR(TGPIO_IOC_MAGIC, 2, __u8)

#define TGPIO_IOC_SETHIGH       _IOW(TGPIO_IOC_MAGIC, 2, __u8)

#define TGPIO_IOC_SETLOW        _IOW(TGPIO_IOC_MAGIC, 3, __u8)

#define TGPIO_IOC_TOGGLE        _IOW(TGPIO_IOC_MAGIC, 4, __u8)

依次为:

1、  获取GPIO当前值,操作方法:

ret = ioctl(fd, TGPIO_IOC_GETVAL, &gpio_idx)

返回值ret为ioctl的是否成功的标志,返回为0表示设置成功,GPIO当前值将返回到 gpio_idx 变量;

2、  获取中断当前状态,操作方法:

ret = ioctl(fd, TGPIO_IOC_GETSTA, &intr_idx)

返回值ret为ioctl的是否成功的标志,返回为0表示设置成功,GPIO当前值将返回到 intr_idx 变量;

3、  设置IO状态为高,

ret = ioctl(fd, TGPIO_IOC_SETHIGH, &gpio_idx);

返回值ret为ioctl的是否成功的标志,返回为0表示设置成功。

4、  设置IO状态为低,

ret = ioctl(fd, TGPIO_IOC_SETLOW, &gpio_idx)

返回值ret为ioctl的是否成功的标志,返回为0表示设置成功。

5、  设置IO状态反向,

ret = ioctl(fd, TGPIO_IOC_TOGGLE, &tmp)

返回值ret为ioctl的是否成功的标志,返回为0表示设置成功。

 

同时,中断通过 FASYNC 信号将发生的中断通知到应用层,应用层收到SIGIO的信号后,遍历中断引脚,以获取中断引脚状态,具体代码如下:

 

1.2  加密芯片

TTU目前配备SC1187Y与SC1168Y两款加密芯片,设备节点分别为/dev/encryption0和/dev/encryption1,通过 ioctl 对加密芯片ESAM进行读写操作,使用方法如下:

1、  定义相关结构体:

struct encryption_reg_req {

        int buflen;

        char* bufdata;

};

2、定义IOCTL相关信号:

#define ESAM_GET_DATA           _IOW('E', 0x01, struct encryption_reg_req)

#define ESAM_SET_DATA           _IOW('E', 0x02, struct encryption_reg_req)

3、打开加密芯片设备,进行 ioctl 操作,一次写、读交互示例如下:

 

 

1.3  串口

TTU使用4路UART实现两路RS485串口、两路RS232/RS485可切换串口,设备节点与串口对应关系为:

串口与设备节点对应关系

UART

设备节点

对应串口

GPIO状态

3

/dev/ttySZ3

RS485-1

-

4

/dev/ttySZ4

RS485-2

-

5

/dev/ttySZ5

RS485-3

PB08为高电平

6

/dev/ttySZ6

RS485-4

PB09为高电平

7

/dev/ttySZ5

RS232-1

PB08为低电平

8

/dev/ttySZ6

RS232-2

PB09为低电平

串口打开

fd = open( "/dev/ttySZ3", O_RDWR|O_NOCTTY|O_NDELAY)

打开后进行配置,配置无校验、9600波特率操作如下:

 

之后,通过 read(fd, buff, len) 和 write(fd, buff, len) 进行读写即可。

1.4  PT100 I2C温度传感器

Pt100温度传感器设备节点为 /dev/pt100-i2c ,打开后直接通过read进行数据读取,每次读取4个int长度的数据,,每两个int型数据为一组,分别为整数部分和小数部分,具体操作如下:

 

 

1.5   ledwan驱动说明

ledwan的设备节点是/dev/ledwan,打开后,写入一个单字节的数值代表,代表让ledwan灯的亮灭和闪烁。

写入0代表ledwan灯灭

写入1代表 ledwan灯亮

写入2代表ledwan灯闪烁

下图示例代码是控制ledwan灯闪烁

 

 

1.6  ledctrl驱动说明

ledctl的设备节点是/dev/ledctl,打开后直接,写入一个单字节的数值代表,代表让ledctl灯的亮灭和闪烁。

写入0代表ledctl灯灭

写入1代表 ledctl灯亮

写入2代表ledctrl灯闪烁

下图示例代码是控制ledctl灯常亮

 

 

1.7  di17驱动说明

di17的设备节点是/dev/di17,设备打开后,读取单个字节的数据,读取得到的数值为0,或者1

0代表上盖状态正常

1代表上盖被打开

下图是读取di17状态的示例代码

 

 

1.8  di18驱动说明

di18的设备节点是/dev/di18,设备打开后,读取单个字节的数据,读取得到的数值为0,或者1

0代表尾盖状态正常

1代表尾盖被打开

下图是读取di18状态的示例代码

 

 

1.9  input_irq驱动说明

input_irq对应设备掉电上电引脚,input_irq驱动的设备节点是/dev/input_irq,设备打开后,注册设备掉电信号的对应的信号处理函数,然后当前任务和驱动实现挂接,获取文件标志位flag,为文件flag添加FASYNC选项。

当设备掉电时候,注册的信号处理函数就会被系统调用。然后在回调函数中,读取引脚状态,来获取是在失电状态还是在上电状态。

示例代码如下:

 

钉钉群:

  

 

posted @ 2020-04-15 15:02  背灯和月就花阴  阅读(3959)  评论(2编辑  收藏  举报