因为串口设备工作频率低且容易受到干扰,远距离传输会造成数据丢失。表7.5DB9(9针)接口的RS232串口数据线定义常见的串口工具软件都提供了RTS/CTS与XON/XOFF选项。这两个选项对应RS232串口的两种流量控制方式。RTS/CTS方式通过对串口控制器编程,设置接收缓冲区的高位标志和地位标志。高位标志和低位标志用于控制RTS和CTS信号线。......
2023-11-19
本节将给出一个和Windows串口终端通信的例子。两台PC通过串口建立起COM1和COM2的配对连接,串口COM1在Windows系统中打开,串口2在Linux系统中打开,运行下面例子编译后的程序,与Windows系统的终端通信。
【例7-1】Linux系统下串口操作实例。
实例所示程序扮演一个串口服务端的功能。程序首先在第23行打开一个串口设备,之后判断文件句柄是否合法,不合法会退出。第31行和第32行使用tcgetattr()函数去除串口设备的配置。第35行和第36行设置串口的波特率为19200bps;第39行和第40行设置数据位为8;第43行和第44行设置无奇偶校验;第48行设置1位停止位;第51行和第52行设置超时时间为15秒;最后,第55行使用tcsetattr()函数写入串口设置,并且参数设置为立即配置。第62行~75行循环读取串口,如果搜到数据就打印到屏幕,并且在第71行判断接收到的字符串是否是“quit”,如果是就跳出循环,退出程序。(www.chuimin.cn)
当连接好两台PC以后,在Linux系统编译实例7-1的stty_echo.c文件生成应用程序。使用root权限执行编译后的程序,程序在屏幕打印“Open device success,waiting user input…”。在Windows系统上使用串口软件打开串口,在屏幕输入字符串后按回车键发送字符。在Linux屏幕终端会打印用户在Windows中串口软件里输入的字符串。当用户输入“quit”字符串以后,串口程序退出。
有关ARM嵌入式系统原理与应用的文章
因为串口设备工作频率低且容易受到干扰,远距离传输会造成数据丢失。表7.5DB9(9针)接口的RS232串口数据线定义常见的串口工具软件都提供了RTS/CTS与XON/XOFF选项。这两个选项对应RS232串口的两种流量控制方式。RTS/CTS方式通过对串口控制器编程,设置接收缓冲区的高位标志和地位标志。高位标志和低位标志用于控制RTS和CTS信号线。......
2023-11-19
Linux操作系统为串行口提供了很好的支持。Linux系统中串口设备被当做一个字符设备处理。图7.6m inicom配置端口结束如图7.6所示,串口被设置为tty0,波特率是38 400,其他配置为默认设置。图7.7m inicom命令界面2.操作串口需要用到的头文件在Linux系统操作串口需要用到以下头文件:在编写串口操作程序的最开始引用这些文件即可。串口的打开和关闭和文件相同。......
2023-11-19
ARCnet采用优化令牌总线协议作为媒质访问控制方法。实际控制领域中ARCnet网络的多数故障是节点故障。用户数据写入协议控制器内置的2KB RAM中,在数据发送时,协议控制器会自动将其组织到ARCnet的数据帧中。图7-40 数据的传送过程ARCnet支持广播消息。......
2023-08-29
2.BACnet数据包的发送部分对于BACnet数据包的发送,在BACnet数据包字节数不是很多的情况下,最好一次性地输出,防止BACnet接收设备在BACnet数据帧接收时序比较严格的情况下,认为该数据包无效而丢弃不处理。......
2023-08-29
ARCnet位于OSI模型的物理层和数据链路层,ARCnet实现两个网络节点之间数据帧的发送和接收。不能发送ISU数为253、254或255的帧。基本帧用于节点间的控制信息和数据交互;突发性重构请求帧用于网络重构。......
2023-08-29
对于音频驱动的电源管理部分,ALSASoC框架层提供了基本的电源管理框架,之前在其与底层platform关联的platform driver中可见有电源管理的操作接口soc_pm_ops。DAPM是dynamic audio power management的缩写。DAPM的目的是降低音频设备的功耗。在实现过程中通过将与音频路径相关的kcontrol控制元素包含进DAPM管理实体,就可以监控系统设置以及应用设置导致的状态变化,从而进行正确的操作。这样就完整实现了整个音频的电源管理功能。......
2023-11-22
从图5-14可见,具体的设备模型的初始化流程在系统已经基本初始化完毕后执行,这时候sys文件系统作为一种特殊的文件系统已经注册并初始化,具体的设备初始化会在do_initcalls以函数表的形式进行,在这之前就是设备模型初始化的好时机,由driver_init来完成,其内部会进行总线管理初始化,功能设备管理初始化,platform总线初始化等。这样就对设备模型的设计框架有了基本的认识。......
2023-11-22
内核核心功能应该能满足最小系统的需求。最小系统中最核心的硬件是CPU和RAM,在系统执行期间这两个硬件是必需的。所以这两部分的管理可以说是Linux内核的重中之重,对性能等各方面的影响也是最大的。可见Linux内核在目录编排上也是有比较多的讲究的,这在后续讨论设备驱动时会有更多介绍。由于DMA在硬件中的广泛使用,内核同样需要在核心部分提供该功能。可见Linux内核核心功能需求也是逐渐发展来满足内核和驱动开发需要的。......
2023-11-22
相关推荐