Linux下ARM和单片机的串口通信研究
- 格式:pdf
- 大小:1.22 MB
- 文档页数:4


Delphi 利用TComm组件 Spcomm 实现串行通信
2010-08-06 09:15:09| 分类: 默认分类|举报|字号 订阅
摘要:利用Delphi开发工业控制系统软件成为越来越多的开发人员的选择,而串口通信是这个过程中必须解决的问题之一。本文在对几种常用串口通信方法分析比较的基础上,着重讨论了Delphi开发环境下利用Spcomm控件实现PC机与单片机之间串口通信的方法,研究了Spcomm串口通信的关键技术问题,并通过一个实例给出了Spcomm控件在Delphi7.0串口通信中的应用。
1 引言
目前, 随着现代信息技术的发展,计算机串口通信技术已日趋成熟。由于微机性能价格比高、分析处理能力强、处理速度快以及单片机抗干扰能力强、使用灵活等特点,利用PC机作为上位机,单片机作为下位机的主从工作方式在工业控制领域中被广泛采用。无忧S3C2410 ARM9开发板 S3C44B0 ARM7
开发板350元单片机开发系统498元无忧单片机实验开发板238元
PC机与下位机的通信可以采用高级语言编程实现,如Delphi、VC等。Delphi
是新一代面向对象的可视化开发工具,它具有功能强大、简便易用和代码执行速度快等特点,越来越在构架企业信息系统方面发挥着重要作用。由于Delphi 这些显著特点,利用Delphi开发工业控制系统软件成为越来越多的开发人员的选择,而实现系统监测控制和信息处理的关键是解决PC机与单片机之间的串口通信问题。
2.Spcomm串口通信组件简介
用Delphi 实现串口通信,常用的方法有:使用控件,如Mscomm和Spcomm控件等;使用API函数;在Delphi
中调用其它串口通信程序[1]。使用API方法的优点是比较适合于编写较为复杂的低层次通信程序,但缺点是编写串口通信程序较为复杂,需要掌握大量通信知识。Spcomm是Small-Pig Team开发的一个第三方Delphi串口控件[2],该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作,且编程简单、通用性强、可移植性好。在Delphi软件开发中已经成为一个被广泛应用的串口通信开发控件。
第 1 页 共 3 页 lpuart用法
lpuart是Linux内核中的一个串行通信模块驱动程序,用于支持UART接口设备,如嵌入式系统的串口通信模块。本文将介绍lpuart的基本用法和相关配置。
lpuart是Linux内核的一部分,它提供了对UART接口设备的支持,用于串口通信。lpuart驱动程序通常与字符设备驱动程序一起使用,允许应用程序通过串口进行通信。
二、lpuart设备节点
lpuart设备节点通常以/dev/ttyS*或/dev/ttyUSB*的形式存在,具体设备节点名称取决于设备的物理接口。使用lpuart之前,需要先打开相应的设备节点。
在使用lpuart之前,需要进行相应的配置。通常,需要指定设备的波特率、数据位、停止位、校验位等参数。这些参数可以通过内核配置菜单或通过modprobe命令进行设置。
四、lpuart使用示例
下面是一个简单的lpuart使用示例,通过串口发送和接收数据:
1. 打开串口设备节点
首先,需要打开串口设备节点,可以使用open()系统调用来实现:
```c
int fd = open("/dev/ttyS0", O_RDWR);
if (fd < 0) {
perror("open device failed");
return -1; 第 2 页 共 3 页 }
```
2. 设置lpuart参数
接着,需要使用ioctl()系统调用来设置lpuart参数:
```c
struct termios tty;
memset(&tty, 0, sizeof(tty));
tcgetattr(fd, &tty);
cfsetispeed(&tty, B9600); // 设置波特率为9600 bps
cfsetospeed(&tty, B9600);
tty.c_cflag |= (CLOCAL | CREAD); // 启用接收数据和本地模式
- 1 - linux arm上系统调用流程
在LinuxARM架构中,系统调用是用户空间程序与内核进行交互的重要方式之一。其流程主要包括以下几个步骤:
1、用户程序通过系统调用号和参数向内核发起系统调用请求。
2、内核根据系统调用号判断调用的具体功能,并将参数从用户空间复制到内核空间。
3、内核执行指定的系统调用功能,并将执行结果返回给用户程序。
4、用户程序处理系统调用的执行结果。
在ARM架构中,系统调用是通过软中断(SWI)的方式实现的。具体来说,用户程序会在执行到相应的系统调用指令时触发一个软中断,中断处理程序会根据系统调用号调用相应的内核函数来完成系统调用的处理。在Linux内核中,系统调用函数通常被封装在一个系统调用表中,用户程序在发起系统调用请求时会通过系统调用号来索引相应的系统调用函数。
需要注意的是,在ARM架构中,系统调用的参数传递还有一种特殊的方式,即通过寄存器来传递参数,而不是通过堆栈。具体来说,r0-r3寄存器用于传递前4个参数,r4-r11寄存器用于传递后续的参数,r7寄存器则用于传递系统调用号。
总之,对于ARM架构上的Linux系统而言,系统调用是实现用户程序与内核通信的重要方式之一,理解其调用流程和参数传递方式对于深入了解Linux系统的运作原理具有重要意义。 - 2 -
第27卷第12期 2011年6月 甘肃科技 Gansu Science and Technology 27Ⅳ0.12 Jun.20l1
ARM—Linux嵌入式远程监控系统的设计
白义峰,邵 毅
(沈阳机床股份有限公司中捷钻镗床厂,辽宁沈阳110042)
摘要:温度、压力和气体浓度是地下作业安全中的3个重要因素。为了实现矿井中这3个重要因素的远程数据采 集,引入了当前嵌入式应用中较为成熟的ARM9微处理器和un慨嵌入式操作系统技术,设计了一种基于TCP/IP协 议的嵌入式远程实时数据采集方案。 关键词:ARM;Linux;嵌入式系统;数据采集;矿井气体检测 中图分类号:TP368 .
嵌人式系统一般应用嵌入式操作系统来开发。
在嵌入式操作系统的选择上,由于linux有完整开放
的源代码,因而它具有修改和优化系统、内核稳定、 适用于多种CPU和多种硬件平台、支持网络等特
点,所以选择Linux作为嵌入式操作系统较好。对 于准确及时检测矿井温度,压力和气体的浓度对于
保障矿工的生命健康安全,具有十分重要的意 义…。基于ARMlinux的嵌入式远程测控系统不仅
能够实现本地数据采集与控制,还能实现远程测控 任务。基于国内外数据采集系统的发展趋势,设计
了一种基于ARM的矿井数据采集系统 】。
1系统硬件结构的设计
1.1 系统结构的组成 本系统由嵌人式控制器、远程监控站、前端数据 采集器和相应的分线器组成。前端传感器有温度采
集器。压力采集器和气体浓度采集器。系统结构如
图l所示。
图1系统总体结构 1.2系统硬件设计 系统硬件设计的核心是嵌入式控制器,其硬件
组成结构如图2所示。
1.3系统环境Linux简介
(1)采用模块化设计,源代码完全开放,任何人 宁 { } l
SKY S3c24柏
圈2嵌入式控制器硬件组成结构都可以根
据需要任意修改并在GUN协议下发行,节约很大一
部分开发费用。
(2)具有强大的网络功能,能提供各种网络服 务。