Linux软件开发一直在Internet环境下讲行。Linux开发工作经常是在Linux用户决定共同完成一个项目时开始的。由于这个活跃的开发环境,新的以Linux为基础的软件功能日益强大,而且呈现爆炸式的增长态势。许多流行的Linux实用程序如C编译器、shell和编辑器都是GNU软件应用程序。Linux程序需要首先转化为低级机器语言即所谓的二进制代码以后,才能被操作系统执行。......
2023-11-19
串口通过直接连接在两台设备间的连接线发送和接收数据,两台设备通信至少需要三根连接线(发送数据、接收数据和接地)才可以通信。以最常见的RS232串口为例,通信距离较近时(<12 m),可以用电缆线直接连接标准RS232端口。如果传输距离远,可以通过调制解调器(MODEM)传输。因为串口设备工作频率低且容易受到干扰,远距离传输会造成数据丢失。
表7.5是常见的9针接口串口各条线定义,RS232标准的串口不仅提供了数据发送和接收功能,同时可以进行数据流控制。对于普通应用来说,连接好两个数据线和地线就可以通信。
表7.5 DB9(9针)接口的RS232串口数据线定义
常见的串口工具软件都提供了RTS/CTS与XON/XOFF选项。这两个选项对应RS232串口的两种流量控制方式。串口流量控制主要应用于调制解调器的数据通信,对于普通的RS232串口编程,了解一点流量控制方面的知识是必要的。
在两个串口之间传输的数据,通常称做串口数据流。串口数据流的两端由于计算机处理能力差别,常会出现数据丢失的现象。如单片机和PC之间使用串口传输数据,单片机的处理能力远小于PC,如果PC按照自己的处理速度发送数据,串口另一端的单片机很快就会因为处理不过来而导致数据丢失。
解决串口传输数据丢失的办法是对串口数据传输两端进行流量控制。在串口协议中规定了传输数据的速率,即单位时间内传输的字节数。根据不同的传输速率,在接收端和发射端可以进行流量控制。接收端在接收缓冲区满之后,向发送端发出暂停发送信号;等接收缓冲区数据被取走之后,向发送端发出继续发送的信号;发送端收到暂停发送信号后停止数据发送,直到收到继续发送信号才会再次发送数据。
串口协议中规定了硬件流量控制(RTS/CTS和DTR/CTS)和软件流量控制(XON/OFF)方法。
1.硬件流量控制(www.chuimin.cn)
常见的串口硬件流量控制方法有以下两种。
●RTS/CTS称做“请求发送/清除发送”流量控制。使用时需要连接串口电缆两端的RTS和CTS控制线(表1中的第7针和第8针)。RTS/CTS流量控制方式中,终端是流量发起方。
●DTR/DSR称做“数据终端就绪/数据设置就绪”流量控制。使用时需要连接串口电缆的DTR和DSR控制线(表1中的第4针和第6针)。
RTS/CTS流量控制方法使用比较普遍。RTS/CTS方式通过对串口控制器编程,设置接收缓冲区的高位标志和地位标志。高位标志和低位标志用于控制RTS和CTS信号线。当接收端数据超过缓冲区的高位标志后,串口控制器把CTS信号线置为低电平,表示停止数据发送;当接收端数据缓冲区处理到低位以下,串口控制器置CTS为高电平,表示可以开始数据发送。数据接收端使用RTS信号表示是否准备好接收数据。
2.软件流量控制
使用软件流量控制需要占用多条数据信号线,在实际的串口通信中,为了简便通信通常使用软件流量控制。使用软件流量控制的串口通信电缆只需要三条数据线(数据发送、数据接收和地线)即可,软件流量控制使用XON/XOFF协议。
软件流量控制的原理与硬件流量控制原理类似。不同的是,软件流量控制使用特殊的字符表示硬件流量控制中的CTS信号。在软件流量控制中,首先设置数据接收缓冲高位和低位。当接收端数据流量超过高位的时候,接收端向发送端发出XOFF字符,XOFF字符通常是十进制数19,表示停止数据发送;当接收端数据缓冲数据低于低位的时候,接收端向发送端发送XON字符(通常是十进制数17),表示数据开始传输。
有关ARM嵌入式系统原理与应用的文章
Linux软件开发一直在Internet环境下讲行。Linux开发工作经常是在Linux用户决定共同完成一个项目时开始的。由于这个活跃的开发环境,新的以Linux为基础的软件功能日益强大,而且呈现爆炸式的增长态势。许多流行的Linux实用程序如C编译器、shell和编辑器都是GNU软件应用程序。Linux程序需要首先转化为低级机器语言即所谓的二进制代码以后,才能被操作系统执行。......
2023-11-19
对一个打开的文件而言,最常用到的就是对文件的读写操作,在Linux系统中,提供了系统调用函数实现文件的读写操作。读取文件数据时,文件的当前读写位置会向后移。以下几种读取文件数据情况下,返回的字节数会小于count值。......
2023-11-19
Linux内核主要由5个子系统组成:进程调度子系统、进程间通信子系统、内存管理子系统、虚拟文件系统子系统、网络接口子系统。Linux2.6.28内核的主要结构目录:/arch子目录包含了所有与硬件体系结构相关的内核移植代码。/Documentation子目录包含有关内核的许多非常详细的文档。/include子目录包含了建立内核代码时所需的大部分库文件的头文件,该模块利用其他模块重建内核。/ipc子目录包含了内核的进程间通信的代码。......
2023-11-19
ARM微处理器已经遍及工业控制、消费类电子通信系统、网络系统、无线系统各类产品市场,基于ARM技术的微处理器应用占据了32位RISC微处理器80%以上的市场份额。ARM嵌入式技术在联网方面的优势,为弧焊电源实现网络化控制奠定了基础。ARM9可以达到180~200MHz的工作速率,它能驱动的周边装置比ARM7多,应用范围也比较广。ATMEL公司的AT91AM9200是基于ARM9的,具有丰富的接口功能。ARM芯片通信接口能力强,一般用于焊接过程及设备人机界面系统的核心芯片。......
2023-06-26
图8.4socket套接字发送、接收数据示意图2.套接字缓冲区的特性◆缓冲区在每个TCP套接字中单独存在;◆I/O缓冲区在创建套接字时自动生成;◆即使关闭套接字也会继续传送输出缓冲区中遗留的数据;◆关闭套接字将丢失输入缓冲区中的数据。......
2023-11-19
在PDA类的设备中,系统在全速运行的时候远比空闲的时候少,所以可以通过设置,使CPU尽可能工作在空闲状态,然后通过相应的中断唤醒CPU,恢复到正常工作模式,处理响应的事件,然后再进入空闲模式。CPU空闲时,降低时钟频率;处于工作状态时,提高时钟频率以全速运行处理事务。......
2023-11-08
Web服务器和HTTP服务器可以说是同一个东西,当然非得细分的话,HTTP服务器是建立在HTTP协议之上的提供文档浏览的服务器,更多的是提供静态的文件。而Web服务器涵盖了HTTP服务器,Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。图11.2W eb服务器工作原理图我们以浏览器作为客户端,完成Web服务的工作流程讲述。Web服务器是以短连接为主,并且获取的数据到达浏览器的那一刻一定是静态的不变的。......
2023-11-19
2.开发模式嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。表1.2常用嵌入式开发工具......
2023-11-19
相关推荐