糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 基于STC单片机串口扩展网络通信的应用

基于STC单片机串口扩展网络通信的应用

时间:2023-02-05 07:16:31

相关推荐

基于STC单片机串口扩展网络通信的应用

基于STC单片机串口扩展网络通信的应用

郑贤亨 金建强

浙江省江山江汇电气有限公司

关建词 单片机 c语言 ch9121 网络通信 通信协议

近几年,随着网络物联网的流行,物联网产品也有层出不穷。笔者之前开发过一款无线联接的温湿度控制器系统,在开关柜内进行数据采集与服务器传输、APP软件可以实时监测柜中的温湿度数据。在上面的项目中,我们主要负责电路硬件的设计,与USR模块接口,编写下位机主机程序,协同服务器端接收协议数据发送等。服务器端与APP程序的开发测由我们兄弟单位开发并一起共同调试成功。本文主要利用江苏国芯科技的STC8G1K08单片机与江苏沁恒的CH9121主控进行局域网通信。

本主要介绍STC8G1K08单片机串口扩展有线网络接口,对基本电路硬结构不作详细介绍,有兴趣的可以去看《AM2120单总线温湿度传感器的移植与应用》一文。

费话少说进入我们的主题,串口转网络模块在某宝不算贵如下图:

把模块的RXD TXD GND 5V分别与单片机主设备的TXD RXD GND 5V线脚分别相连接.如图

并且用网线将模块网口接入路由器,或直接与电脑的网口相连接。接下来自定义一个8BYTE通信协议:识别码1BYTE 数据码5BYTE 和校验码 2BYTE 例如:(hex格式)bb 00 07 00 01 00 00 08 ,下位机收到数据后解析成功,返回 OK字样,并送出采样到的温度与湿度的实时数据。

下位机通信主要函如

//函数:uart1-TxByte(unsigned char dat) //发送一个字节数据

void Uart1_TxByte(unsigned char dat)

{

B_TX1_Busy = 1; //标志发送忙

SBUF = dat; //发一个字节

while(B_TX1_Busy); //等待发送完成

}

//函数: void UART1_int (void) interrupt UART1_VECTOR

// 描述: 串口1中断函数

void UART1_int (void) interrupt UART1_VECTOR

{

static unsigned char num=0;

if(RI)

{

RI = 0;

Rxd_Buffer[num]=SBUF;

if(Rxd_Buffer[0]==0xBB) //带首字节识别,这里BB为数据与bb为等值

{

num++;

if(num>=RX_Lenth)

{ num=0; flag=1;}

}

}

if(TI){TI = 0;B_TX1_Busy = 0;}

}

// 函数: analysis()

// 描述: 收到数据组的进一步解析,要满足前面提到的要求:第2,3,4,5 , 6字节//的和等于第7,8字节

void analysis()

{

unsigned char j;

if(flag1)

{

ES=0;

flag=0;

j=Rxd_Buffer[1]+ Rxd_Buffer[2]+Rxd_Buffer[3]+Rxd_Buffer[4]+Rxd_Buffer[5];

if((Rxd_Buffer[6]*256+Rxd_Buffer[7])j)

{

m=3;

}

else

{m=0;}

ES=1;

if(m3)

{

Uart1_TxByte(‘O’);

Uart1_TxByte(‘K’);

Uart1_TxByte(’!’);

Uart1_TxByte(’\n’);

}

if(m0)

{

Uart1_TxByte(‘e’);

Uart1_TxByte(‘r’);

Uart1_TxByte(‘r’);

Uart1_TxByte(’!’);

Uart1_TxByte(’\n’);

}

}

}

Anysis()函数必须在主函数中进行调用,以上均为协议接收数据程序。解析成功返回OK字样。

接下来开始利用官网提供的模块配置软件netmoduleconfig将模块上电获取出厂原始参数,并配置为TCP client

设备IP:192.168.0.200子网掩码:255.255.255.0 网关地址:192.168.0.1与通信的路由器、电脑在同一网段如图

目的端口:1000 //目的IP(TCPSERVER)192.168.0.100//串口波特率用9600//数据位8等。

在电脑侧网络配置:

再进一步打开串口调试助手,建立服务器如图:

最后,我们可以看出,服务器端网络调试助手通过网线联接(路由)到CH9121的客户端,再由客户端串口与到单片机串口之间的数据交互。满足协议要求数据下发,单片机把温湿度数据返回服务端,从而

实现产品网络通信扩展与应用。

参考资料文档

1、江苏国芯科技有限公司《STC8G系列单片机技术参考手册-2029》

2、周立功等 《单片机实验与实践教程3》

3、《JZ-NET-232使用技术文档》

如果觉得《基于STC单片机串口扩展网络通信的应用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。