Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
|
d343ec514c |
|
@ -23,8 +23,7 @@
|
|||
#define __MAIN_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
|
@ -48,10 +47,10 @@ extern "C"
|
|||
extern uint8_t tcp_echo_flags_control;
|
||||
extern uint8_t send_data_flag_cmd;
|
||||
|
||||
extern uint8_t uart_echo_flags_hart1;
|
||||
extern uint8_t uart_echo_flags_hart2;
|
||||
extern uint8_t uart_echo_flags_ble1;
|
||||
extern uint8_t uart_echo_flags_ble2;
|
||||
extern uint8_t uart_forwarding_flags_hart1;
|
||||
extern uint8_t uart_forwarding_flags_hart2;
|
||||
extern uint8_t uart_forwarding_flags_ble1;
|
||||
extern uint8_t uart_forwarding_flags_ble2;
|
||||
#define ARRAY_LEN(arr) (sizeof(arr)) / (sizeof(arr[0]))
|
||||
typedef struct
|
||||
{
|
||||
|
|
|
@ -64,6 +64,7 @@ osThreadId dac_taskHandle;
|
|||
osThreadId adc_taskHandle;
|
||||
osThreadId gpio_di_do_taskHandle;
|
||||
osThreadId ec11_taskHandle;
|
||||
osThreadId uart_forwardingHandle;
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* USER CODE BEGIN FunctionPrototypes */
|
||||
|
@ -86,6 +87,7 @@ void start_dac_task(void const *argument);
|
|||
void start_adc_task(void const *argument);
|
||||
void start_gpio_di_do_task(void const *argument);
|
||||
void start_ec11_task(void const *argument);
|
||||
void start_uart_forwarding(void const *argument);
|
||||
|
||||
extern void MX_LWIP_Init(void);
|
||||
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
|
||||
|
@ -158,6 +160,10 @@ void MX_FREERTOS_Init(void)
|
|||
osThreadDef(ec11_task, start_ec11_task, osPriorityNormal, 0, 512);
|
||||
ec11_taskHandle = osThreadCreate(osThread(ec11_task), NULL);
|
||||
|
||||
/* definition and creation of uart_forwarding */
|
||||
osThreadDef(uart_forwarding, start_uart_forwarding, osPriorityRealtime, 0, 512);
|
||||
uart_forwardingHandle = osThreadCreate(osThread(uart_forwarding), NULL);
|
||||
|
||||
/* USER CODE BEGIN RTOS_THREADS */
|
||||
/* add threads, ... */
|
||||
/* USER CODE END RTOS_THREADS */
|
||||
|
@ -216,6 +222,7 @@ void start_tcp_task(void const *argument)
|
|||
tcp_abort(server_pcb_control); // 热插拔下线时调用
|
||||
tcp_echo_flags_control = 0;
|
||||
}
|
||||
tcp_echo_flags_ble1 = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -341,10 +348,28 @@ void start_ec11_task(void const *argument)
|
|||
{
|
||||
linear_encoder_get_data();
|
||||
uart_lcd_ec11_control_current();
|
||||
vTaskDelay(100);
|
||||
}
|
||||
/* USER CODE END start_ec11_task */
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN Header_start_uart_forwarding */
|
||||
/**
|
||||
* @brief Function implementing the uart_forwarding thread.
|
||||
* @param argument: Not used
|
||||
* @retval None
|
||||
*/
|
||||
/* USER CODE END Header_start_uart_forwarding */
|
||||
void start_uart_forwarding(void const *argument)
|
||||
{
|
||||
/* USER CODE BEGIN start_uart_forwarding */
|
||||
/* Infinite loop */
|
||||
for (;;)
|
||||
{
|
||||
uart_forwarding_tcp();
|
||||
vTaskDelay(10);
|
||||
}
|
||||
/* USER CODE END start_ec11_task */
|
||||
/* USER CODE END start_uart_forwarding */
|
||||
}
|
||||
|
||||
/* Private application code --------------------------------------------------*/
|
||||
|
|
|
@ -82,15 +82,10 @@ uint8_t tcp_echo_flags_ble2 = 0;
|
|||
uint8_t tcp_echo_flags_control = 0;
|
||||
uint8_t send_data_flag_cmd = 0;
|
||||
|
||||
uint8_t uart_echo_flags_hart1 = 0;
|
||||
uint8_t uart_echo_flags_hart2 = 0;
|
||||
uint8_t uart_echo_flags_ble1 = 0;
|
||||
uint8_t uart_echo_flags_ble2 = 0;
|
||||
// TEST
|
||||
// uint8_t data_flag = 0;
|
||||
// uint32_t receive_times1 = 0;
|
||||
// uint32_t receive_times2 = 0;
|
||||
// ENDTEST
|
||||
uint8_t uart_forwarding_flags_hart1 = 0;
|
||||
uint8_t uart_forwarding_flags_hart2 = 0;
|
||||
uint8_t uart_forwarding_flags_ble1 = 0;
|
||||
uint8_t uart_forwarding_flags_ble2 = 0;
|
||||
|
||||
extern struct netif gnetif;
|
||||
extern ip4_addr_t ipaddr;
|
||||
|
@ -275,7 +270,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
|||
memcpy(ble1_uart6.rx_data, ble1_uart6.rx_data_temp, Size);
|
||||
if (tcp_echo_flags_ble1 == 1)
|
||||
{
|
||||
uart_echo_flags_ble1 = 1;
|
||||
uart_forwarding_flags_ble1 = 1;
|
||||
// user_send_data_ble1(ble1_uart6.rx_data, Size);
|
||||
}
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart6, ble1_uart6.rx_data_temp, ARRAY_LEN(ble1_uart6.rx_data_temp));
|
||||
|
@ -289,7 +284,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
|||
memcpy(ble2_uart3.rx_data, ble2_uart3.rx_data_temp, Size);
|
||||
if (tcp_echo_flags_ble2 == 1)
|
||||
{
|
||||
uart_echo_flags_ble2 = 1;
|
||||
uart_forwarding_flags_ble2 = 1;
|
||||
// user_send_data_ble2(ble2_uart3.rx_data, Size);
|
||||
}
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart3, ble2_uart3.rx_data_temp, ARRAY_LEN(ble2_uart3.rx_data_temp));
|
||||
|
@ -302,7 +297,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
|||
memcpy(hart1_uart5.rx_data, hart1_uart5.rx_data_temp, Size);
|
||||
if (tcp_echo_flags_hart1 == 1)
|
||||
{
|
||||
uart_echo_flags_hart1 = 1;
|
||||
uart_forwarding_flags_hart1 = 1;
|
||||
// user_send_data_hart1(hart1_uart5.rx_data, Size);
|
||||
}
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart5, hart1_uart5.rx_data_temp, ARRAY_LEN(hart1_uart5.rx_data_temp));
|
||||
|
@ -316,7 +311,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
|||
memcpy(hart2_uart2.rx_data, hart2_uart2.rx_data_temp, Size);
|
||||
if (tcp_echo_flags_hart2 == 1)
|
||||
{
|
||||
uart_echo_flags_hart2 = 1;
|
||||
uart_forwarding_flags_hart2 = 1;
|
||||
// user_send_data_hart2(hart2_uart2.rx_data, Size);
|
||||
}
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart2, hart2_uart2.rx_data_temp, ARRAY_LEN(hart2_uart2.rx_data_temp));
|
||||
|
|
|
@ -220,3 +220,4 @@ u32_t sio_tryread(sio_fd_t fd, u8_t *data, u32_t len)
|
|||
return recved_bytes;
|
||||
}
|
||||
#endif /* MDK ARM Compiler */
|
||||
|
||||
|
|
|
@ -315,6 +315,7 @@ static void low_level_init(struct netif *netif)
|
|||
|
||||
/* USER CODE END PHY_POST_CONFIG */
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -460,6 +461,7 @@ static err_t low_level_output_arp_off(struct netif *netif, struct pbuf *q, const
|
|||
/* USER CODE END 5 */
|
||||
|
||||
return errval;
|
||||
|
||||
}
|
||||
#endif /* LWIP_ARP */
|
||||
|
||||
|
@ -872,3 +874,4 @@ void HAL_ETH_TxFreeCallback(uint32_t *buff)
|
|||
/* USER CODE BEGIN 8 */
|
||||
|
||||
/* USER CODE END 8 */
|
||||
|
||||
|
|
|
@ -145,7 +145,7 @@
|
|||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>ST-LINKIII-KEIL_SWO</Key>
|
||||
<Name>-U420014000D0000504A51544E -O2254 -SF1800 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
||||
<Name>-U090F00028316303030303032 -O2254 -SF500 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2</Name>
|
||||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint>
|
||||
|
@ -154,7 +154,7 @@
|
|||
<Type>0</Type>
|
||||
<LineNumber>2413</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>134234468</Address>
|
||||
<Address>134234476</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
|
@ -165,6 +165,54 @@
|
|||
<ExecCommand></ExecCommand>
|
||||
<Expression>\\semi_finished_product_testing\../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c\2413</Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>1</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>77</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>134238496</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>1</BreakIfRCount>
|
||||
<Filename>../LWIP/App/lwip.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression>\\semi_finished_product_testing\../LWIP/App/lwip.c\77</Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>2</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>224</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>0</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>0</BreakIfRCount>
|
||||
<Filename>startup_stm32f407xx.s</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression></Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>3</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>226</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>0</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>0</BreakIfRCount>
|
||||
<Filename>startup_stm32f407xx.s</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression></Expression>
|
||||
</Bp>
|
||||
</Breakpoint>
|
||||
<WatchWindow1>
|
||||
<Ww>
|
||||
|
@ -237,11 +285,6 @@
|
|||
<WinNumber>1</WinNumber>
|
||||
<ItemText>ip_address_flash,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>14</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>uart_echo_flags_hart1</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<MemoryWindow1>
|
||||
<Mm>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,3 +1,11 @@
|
|||
/*
|
||||
* @Author: wangxujie 390834610@qq.com
|
||||
* @Date: 2025-02-19 08:33:14
|
||||
* @LastEditors: wangxujie 390834610@qq.com
|
||||
* @LastEditTime: 2025-04-18 13:36:18
|
||||
* @FilePath: \Semi-finished product testing\User\application\inc\tcpserverc.h
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
#ifndef _TCPECHO_H_
|
||||
#define _TCPECHO_H_
|
||||
|
||||
|
|
|
@ -34,11 +34,10 @@ extern uint8_t tcp_echo_flags_ble2;
|
|||
extern uint8_t tcp_echo_flags_control;
|
||||
extern uint8_t send_data_flag_cmd;
|
||||
|
||||
extern uint8_t uart_echo_flags_hart1;
|
||||
extern uint8_t uart_echo_flags_hart2;
|
||||
extern uint8_t uart_echo_flags_ble1;
|
||||
extern uint8_t uart_echo_flags_ble2;
|
||||
|
||||
extern uint8_t uart_forwarding_flags_hart1;
|
||||
extern uint8_t uart_forwarding_flags_hart2;
|
||||
extern uint8_t uart_forwarding_flags_ble1;
|
||||
extern uint8_t uart_forwarding_flags_ble2;
|
||||
/*接收回调函数*/
|
||||
static err_t tcpecho_recv_hart1(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)
|
||||
{ // 对应接收数据连接的控制块 接收到的数据
|
||||
|
@ -370,32 +369,32 @@ void user_send_data_ble2(uint8_t *data, uint16_t len)
|
|||
|
||||
void user_send_data_control(uint8_t *data, uint16_t len)
|
||||
{
|
||||
|
||||
tcp_write(server_pcb_control, data, len, 1);
|
||||
}
|
||||
|
||||
void uart_forwarding_tcp(void)
|
||||
{
|
||||
if (uart_echo_flags_hart1 == 1)
|
||||
if (uart_forwarding_flags_hart1 == 1)
|
||||
{
|
||||
uart_echo_flags_hart1 = 0;
|
||||
user_send_data_hart1(hart1_uart5.rx_data, hart1_uart5.rx_num);
|
||||
uart_forwarding_flags_hart1 = 0;
|
||||
}
|
||||
if (uart_echo_flags_hart2 == 1)
|
||||
if (uart_forwarding_flags_hart2 == 1)
|
||||
{
|
||||
uart_echo_flags_hart2 = 0;
|
||||
user_send_data_hart2(hart2_uart2.rx_data, hart2_uart2.rx_num);
|
||||
uart_forwarding_flags_hart2 = 0;
|
||||
}
|
||||
#if (BLE2_USART6 == 1)
|
||||
if (uart_echo_flags_ble1 == 1)
|
||||
if (uart_forwarding_flags_ble1 == 1)
|
||||
{
|
||||
uart_echo_flags_ble1 = 0;
|
||||
user_send_data_ble1(ble1_uart6.rx_data, ble1_uart6.rx_num);
|
||||
uart_forwarding_flags_ble1 = 0;
|
||||
}
|
||||
#endif
|
||||
if (uart_echo_flags_ble2 == 1)
|
||||
if (uart_forwarding_flags_ble2 == 1)
|
||||
{
|
||||
uart_echo_flags_ble2 = 0;
|
||||
user_send_data_ble2(ble2_uart3.rx_data, ble2_uart3.rx_num);
|
||||
uart_forwarding_flags_ble2 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
# 开发环境说明
|
||||
|
||||
## 1. 硬件平台
|
||||
- 主控芯片:STM32F407xx系列(ARM Cortex-M4F内核)
|
||||
- 外设芯片:
|
||||
- ADC:AD7124-8(高精度模拟量输入)
|
||||
- DAC:DAC161S997(高精度模拟量输出)
|
||||
- 以太网:LAN8742(网络通信)
|
||||
- LCD:串口显示屏
|
||||
- 编码器接口
|
||||
|
||||
## 2. 开发工具
|
||||
### 主要IDE
|
||||
- Keil MDK-ARM (MDK-ARM目录存在)
|
||||
- 项目文件:semi-finished_product_testing.uvprojx
|
||||
- 编译配置:semi-finished_product_testing.uvoptx
|
||||
- Visual Studio Code (存在.vscode配置目录)
|
||||
- 用于代码编辑和查看
|
||||
|
||||
### 编译工具
|
||||
- ARMCC编译器 (ARM编译工具链)
|
||||
- 启动文件:startup_stm32f407xx.s
|
||||
|
||||
## 3. 软件框架
|
||||
### 操作系统
|
||||
- FreeRTOS实时操作系统
|
||||
- 版本:位于Middlewares/Third_Party/FreeRTOS/Source/
|
||||
- 配置文件:FreeRTOSConfig.h
|
||||
|
||||
### 驱动库
|
||||
- STM32 HAL库 (Hardware Abstraction Layer)
|
||||
- 位置:Drivers/STM32F4xx_HAL_Driver/
|
||||
- 包含各种外设驱动
|
||||
|
||||
### 网络协议栈
|
||||
- LwIP (Lightweight IP)
|
||||
- 位置:Middlewares/Third_Party/LwIP/
|
||||
- 支持TCP/IP协议
|
||||
- MQTT支持
|
||||
|
||||
### BSP支持
|
||||
- LAN8742网络驱动
|
||||
- 位置:Drivers/BSP/Components/lan8742/
|
||||
|
||||
## 4. 项目结构
|
||||
```
|
||||
项目主要目录:
|
||||
├── Core/ # 核心应用代码
|
||||
├── Drivers/ # 驱动程序
|
||||
├── LWIP/ # 网络协议栈
|
||||
├── MDK-ARM/ # Keil工程文件
|
||||
└── Middlewares/ # 中间件(FreeRTOS/LwIP)
|
||||
```
|
||||
|
||||
## 5. 开发规范
|
||||
- 基于HAL库的驱动开发
|
||||
- FreeRTOS多任务架构
|
||||
- 模块化的设计结构
|
||||
- 标准C语言开发规范
|
||||
|
||||
## 6. 调试方式
|
||||
- ST-Link/J-Link调试器支持
|
||||
- 串口调试
|
||||
- 以太网远程调试
|
||||
|
||||
## 7. 项目文档
|
||||
位于Documents/目录:
|
||||
- 数据手册 (datasheet/)
|
||||
- 项目文档 (project documents/)
|
||||
- 原理图 (schematic diagram/)
|
|
@ -117,7 +117,7 @@ ETH.IPParameters=MediaInterface
|
|||
ETH.MediaInterface=HAL_ETH_RMII_MODE
|
||||
FREERTOS.FootprintOK=true
|
||||
FREERTOS.IPParameters=Tasks01,configMAX_TASK_NAME_LEN,configENABLE_FPU,configMAX_PRIORITIES,FootprintOK
|
||||
FREERTOS.Tasks01=lwip_task,2,512,start_tcp_task,Default,NULL,Dynamic,NULL,NULL;led_task,-2,128,start_led_toggle_task,Default,NULL,Dynamic,NULL,NULL;dac_task,0,512,start_dac_task,Default,NULL,Dynamic,NULL,NULL;adc_task,-1,128,start_adc_task,Default,NULL,Dynamic,NULL,NULL;gpio_di_do_task,0,128,start_gpio_di_do_task,Default,NULL,Dynamic,NULL,NULL;ec11_task,0,512,start_ec11_task,Default,NULL,Dynamic,NULL,NULL
|
||||
FREERTOS.Tasks01=lwip_task,2,512,start_tcp_task,Default,NULL,Dynamic,NULL,NULL;led_task,-2,128,start_led_toggle_task,Default,NULL,Dynamic,NULL,NULL;dac_task,0,512,start_dac_task,Default,NULL,Dynamic,NULL,NULL;adc_task,-1,128,start_adc_task,Default,NULL,Dynamic,NULL,NULL;gpio_di_do_task,0,128,start_gpio_di_do_task,Default,NULL,Dynamic,NULL,NULL;ec11_task,0,512,start_ec11_task,Default,NULL,Dynamic,NULL,NULL;uart_forwarding,3,512,start_uart_forwarding,Default,NULL,Dynamic,NULL,NULL
|
||||
FREERTOS.configENABLE_FPU=1
|
||||
FREERTOS.configMAX_PRIORITIES=32
|
||||
FREERTOS.configMAX_TASK_NAME_LEN=24
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
```mermaid
|
||||
graph TB
|
||||
%% 主要流程
|
||||
Start[系统启动] --> Init[系统初始化]
|
||||
Init --> Tasks[任务创建]
|
||||
|
||||
%% 主要任务分支
|
||||
Tasks --> Network[网络通信]
|
||||
Tasks --> DataAcq[数据采集]
|
||||
Tasks --> DataOut[数据输出]
|
||||
Tasks --> UserInterface[人机交互]
|
||||
|
||||
%% 网络通信详细
|
||||
Network --> |TCP/IP|RemoteControl[远程控制]
|
||||
RemoteControl --> |命令|CommandProcess[命令处理]
|
||||
RemoteControl --> |数据|DataUpload[数据上传]
|
||||
|
||||
%% 数据采集详细
|
||||
DataAcq --> |ADC|AnalogIn[模拟量输入]
|
||||
DataAcq --> |GPIO|DigitalIn[数字量输入]
|
||||
AnalogIn --> DataProcess[数据处理]
|
||||
DigitalIn --> DataProcess
|
||||
|
||||
%% 数据输出详细
|
||||
DataOut --> |DAC|AnalogOut[模拟量输出]
|
||||
DataOut --> |GPIO|DigitalOut[数字量输出]
|
||||
CommandProcess --> DataOut
|
||||
|
||||
%% 人机交互详细
|
||||
UserInterface --> |LCD|Display[状态显示]
|
||||
UserInterface --> |编码器|LocalControl[本地控制]
|
||||
LocalControl --> DataOut
|
||||
DataProcess --> Display
|
||||
|
||||
%% 通信协议
|
||||
subgraph 通信协议
|
||||
HART[HART协议]
|
||||
BLE[蓝牙通信]
|
||||
TCP[TCP/IP]
|
||||
end
|
||||
|
||||
%% 硬件接口
|
||||
subgraph 硬件接口
|
||||
ADC[AD7124]
|
||||
DAC[DAC161S997]
|
||||
DIO[数字IO]
|
||||
LCD[串口LCD]
|
||||
ETH[以太网]
|
||||
Encoder[编码器]
|
||||
end
|
||||
|
||||
%% 数据流向
|
||||
DataProcess --> |测量数据|DataUpload
|
||||
CommandProcess --> |控制命令|DataOut
|
||||
```
|
Loading…
Reference in New Issue