单片机远程控制系统(2)
时间:2025-05-04
时间:2025-05-04
运程控制中单片机的应用
卷
结合!服务器对用户是透明的!交互性强%能"#$#适时的数据流’够处理大量的&
通信所用软件使用(编程实现’)*+,-()*+,-的.语言具有可读性好&编写容易的/0)1234514*特点%这使得它很适合作为基础的开发语言’用于在网络上传输数据和%<6-7891:是一组;3交换信息’而(封装了6-)*+,-7891:的大部分使得对6-%;3<7891:的访问大大简化’
单片机可以通过=;>"$"与计算机串口完成通信功能’现时(上有很多串行口控?@3A<易些’为了能够更加清楚说明系统的运作过程%下面结合关键源码进行分析’
$’"’F服务器端服务器端的作用是接受客户端
并且负责与单片机的通信工作’服务发来的数据%
器程序会首先启动%但它只是在等待来自客户端客户端程序请求一种连接%向服务器说明的请求’
只是它希望的’当客户端发出请求时%服务器允许连接%启动一个特殊的服务器套接字%它与客户机端套接字相连’一旦链接实现%两端都可以自动发出请求并彼此发送数据’
件%83B.==是目前比较完善的控件’通过83B.==可以简化高级语言%特别是C-7D9C5下串口通信程序的开发’单片机内部的程序采用B
EF语言编写%代码十分简洁’$系统的实现
$’F设计思想
对于应用程序而言%客户G服务器希望数据是可靠传输的%所以程序基本采用的是面向连接的服务类型%以保证数据的可靠性’对服务器端而言%考虑到有多个进程H客户#来连接又不消耗资源的方法是针对每个进程都创建一个
%简单而
新线程%在此线程中完成客户的服务请求’服务器创建线程的数目只受到资源H内存%磁盘空间
等#的限制I$J
’简单地说%线程就是一个用于运行代码的
6<K$"对象%它和进程有着不同的含义’6<K$"是一种抢占式多任务操作系统%它为每一个线程轮流分配时间段%让线程在分配的时间段里运行’当分配的时间片结束%B3L寄存器的值存入此线程的B972)M2记录中%等待下一个属于它的时间片到来’而下一线程的B972)M2记录被载入B3L%
开始运行’当线程被创建时%系统将分配给线程一个优先级’
系统将按优先级顺序调度所有进程中的线程%只有当高优先级没有可执行的线
程时%低级别的线程才可能调度到并执行’优先级的设定是相对基本优先级而言的’本软件采用了线程的思想%启动时钟控制线程在后台每隔一段时间就调用线程%搜索系统的就绪任务队列%并执行这些任务’
$’"软件实现
在这里%我们使用()*+,-进行套接字编程%这是因为()*+,-的891:)2组件为6-7D9C5套接字;3<
函数的直接使用提供了一种优秀的界面%实现了一些定制的协议万方数据’使用()*+,-较高级别的套接字组件与使用低级;3<
函数相比%通常更容服务器端接受信号触发事件的流程图见图F’
服务器中有三个列表框用于输出状态&来自客户端的消息以及事件的记录’主要用到的是8)NO)N891:)2控件’当客户端请求连接时%
.7B*-)72B977)12事件为服务器了解连接的客户机提供了第一次机会%并将得到的A952
属性和;DN)55属性在列表框中列出’使用891:)2属性可以使服务器追踪试图连接的客户机
’