## CAMS DATU ：CAMS计算机辅助缝纫管理系统采集模块


#### 更新记录

	24/7/12 不再计算张力，直接发送0-4095量程值，更改发送数据的大小端，更改校验为公司内部校验，与上位机协议测试、工作流程测试完成
	24/7/8  根据0-10V ADC采集电路存在的输入电压为9V时即满量程问题，更改代码张力传感器量程为0-9V时对应0-100 cN
	24/5/17 第一版完成

#### 引脚连接

	关于输入输出引脚连接说明
	
	  |-------------------------------------------------------------|
	  |IN0      IN1     IN2     IN3     IN4     IN5    IN6     IN7  |
	  | 无      锁1     锁2     锁3    右盖板   左盖板   启停   主轴  |
	  |                                                             |
	  |                                                        485  |
	  |           4G模组                      屏幕                   |
	  |                                                             |
	  | 232                                                    ADC  |
	  |                                                             |
	  |OUT0    OUT1    OUT2    OUT4    OUT4    OUT5    OUT6    OUT7 |
	  |闪灯    开锁1   开锁2    开锁3   报警灯                       |
	  |-------------------------------------------------------------|


#### 上位机协议指令（modbus 16位CRC校验，DATU不参与计算）

	44 41 54 55 03 00 01 A3 C6    读数据
	
	44 41 54 55 06 00 01 16 47    主轴针数清零
	44 41 54 55 06 00 02 47 FD    闪灯
	44 41 54 55 06 00 03 77 6B    开锁1
	44 41 54 55 06 00 04 E2 C8    开锁2
	44 41 54 55 06 00 05 D2 5E    开锁3
	44 41 54 55 06 00 06 83 E4    报警灯开
	44 41 54 55 06 00 07 B3 72    报警灯关
	
	设备发送到屏幕的数据
	44 41 54 55 15 00 00 00 0F 01 11 01 00 00 A5 5C
	
	 44 41 54 55：DATU固定开头
	 15 00 00 00：主轴针数
	 0F 01：张力传感器1，0-4095，对应0-100 cN
	 11 01：张力传感器2，同上
	 00 00：传感器状态, 0000 0010，代表IN1传感器有信号
	 A5 5C：CRC16 公司内部校验码，DATU不参与计算
	 
	 传感器状态说明
	 Bit7  Bit6  Bit5       Bit4       Bit3    Bit2    Bit1   Bit0
	 主轴  启停  左盖板检测  右盖板检测  锁3状态 锁2状态  锁1状态  无

#### 开发程度说明

- 待完成

  RS232协议（未指定）

- 已完成

  1.IO输入输出

  2.flash读写，保存数据

  3.USB串口动态配置信息（MQTT、Modbus等）

  4.屏幕多级菜单显示IO数据、配置信息等

  5.Modbus/485读写

  7.ADC采集0-10V、3.3V、4-20ma（可配合硬件修改）

  8.4G联网、MQTT连接
  
  9.命令输出指定log用于调试
  
  10.屏幕交互协议适配完成

#### 开发环境

RT-Thread 软件打开 [点击下载](https://www.rt-thread.org/download.html#download-rt-thread-studio "点击下载")，版本: 2.2.7、C 语言

安装完成，**SDK下载RT-Thread 5.0.2与STM32F1固件库**，导入工程即可

---

#### 使用说明

| 目录        | 说明             |
| ----------- | ---------------- |
| driver      | RT-Thread 的驱动 |
| libraries   | rtt 内核         |
| linkscripts | 空间链接脚本     |
| packages    | 第三方功能包     |
| rt-thread   | rtt 内核         |

主要关心 application 目录下文件夹功能：

| 目录名 | 作用                             |
| ------ | -------------------------------- |
| config | 用户配置功能                     |
| fram   | 读写flash，用以保存读取配置      |
| IO     | 端口电平等                       |
| OLED   | 屏幕                             |
| modbus | modbus 功能                      |
| thread | 线程管理                         |
| ADC    | ADC读值转换0-10V、3.3V、4-20ma等 |
| AIR820 | 4G模组与MQTT代码                 |
| RS232  | 暂未定协议                       |

	由main函数为起始阅读点，读取配置后做初始化启动线程开始工作
	
	main.c-> 读配置 ->thread.c　-> IO
	　　　　　　　　　　　　　　　-> fram
	　　　　　　　　　　　　　　　-> modbus
			 　　　　　　　　　　-> .......


---

#### 控制台命令


|  命令 | 作用  |
| ---------------- | ------------ |
|  log_lte |  4G与mqtt的log |
|  log_moddbus |  modbus的log |
|  log_adc | adc的log  |
|  log_io | 查看IO端口变化信息 |
|  log_datu | 查看主机命令交互过程  |
|  no_log | 关闭log  |
|  IO_key < 0-8 > < 1  0 >|  指定输出端口改变电平  |




---

#### 空间与引脚分配

- MB85RS64储存分布说明，8192 字节

| 字符         | 占用 |
| ------------ | ---- |
| 预留标志位   | 8    |
| MQTT         | 80   |
| modbus       | 9    |
| ADC          | 4    |
| 下一写入位置 | 101  |
| 运行数据     | ...  |

-
- 引脚分配表
- 输入输出

| 引脚名称 | 功能   |      | 引脚名称 | 功能    |
| -------- | ------ | ---- | -------- | ------- |
| PC2      | INPUT1 |      | PB12     | OUTPUT1 |
| PC3      | INPUT2 |      | PB13     | OUTPUT2 |
| PC4      | INPUT3 |      | PB14     | OUTPUT3 |
| PA5      | INPUT4 |      | PB15     | OUTPUT4 |
| PA6      | INPUT5 |      | PC6      | OUTPUT5 |
| PA7      | INPUT6 |      | PC7      | OUTPUT6 |
| PA8      | INPUT7 |      | PC8      | OUTPUT7 |
| PC9      | INPUT8 |      | PA11     | OUTPUT8 |

- 通信接口

| 引脚 | 功能          |      | 引脚 | 功能           |
| ---- | ------------- | ---- | ---- | -------------- |
| PA9  | UART1_console |      | PB3  | SPI_SCK_flash  |
| PA10 | UART1_console |      | PB4  | SPI_MISO_flash |
|      |               |      | PB5  | SPI_MOSI_flash |
| PC10 | UART4_232_TX  |      | PA15 | NSS_CS         |
| PC11 | UART4_232_RX  |      |      |                |
| PC12 | UART5_232_TX  |      | PB6  | oled_SCL       |
| PD2  | UART5_232_RX  |      | PB7  | oled_SDA       |
|      |               |      | PB8  | Key_4          |
| PA1  | EN_485        |      | PB9  | Key_3          |
| PA2  | UART2_485_TX  |      | PC13 | key_2          |
| PA3  | UART2_485_RX  |      | PC14 | key_1          |
|      |               |      |      |                |
| PB10 | UART3_TX_4G   |      | PA0  | ADC1_0         |
| PB11 | UART3_RX_4G   |      | PA4  | ADC2_4         |
| PB1  | WAK           |      | PC0  | ADC3_10        |
| PB0  | GPS           |      | PC1  | ADC3_11        |
| PC5  | RST           |      |      |                |

- 

