基于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(m { Uart1_TxByte(‘O’); Uart1_TxByte(‘K’); Uart1_TxByte(’!’); Uart1_TxByte(’\n’); } if(m
{
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单片机串口扩展网络通信的应用》对你有帮助,请点赞、收藏,并留下你的观点哦!