嵌入式系统中串口通信帧的同步方法

嵌入式系统中串口通信帧的同步方法
嵌入式系统中串口通信帧的同步方法

嵌入式系统中串口通信帧的同步方法

21ic

引 言

串口通信是日前单片机和DSP 等嵌入式系统之间,以及嵌入式系统与PC 机或无线模块之间的一种非常重要且普遍使用的通信方式。在嵌入式系统的硬件结构中,通常只有一个8位或16位的CPU,不仅要完成主流程的工作,同时还要处理随时发生的各种中断,因而嵌入式系统中的串口通信程序设计与PC 机有很大的不同。若嵌入式系统中.中断服务子程序在系统运行过程中占用了较多的时间,就有可能在中断眼务子程序正运行时,又产生一个同类型或其他类型的中断,从而造成主程序得不到执行或后续中断数据丢失。所以,嵌入式系统中的串口通信虽然看似简单,但其中仍有许多问题值得研究,例如串口通信过程中的帧同步问题。本文针对该问题给出了逐次比较、基于FIFO 队列和基于状态机的3种帧同步方法。通过测试、分析和比较得出,基于有限状态机的方法是嵌入式系统串口通信中很有效的帧同步方法,同时也是一种很不错的串口通信程序设计结构。

1 1 串口通信的数据帧结构串口通信的数据帧结构串口通信的数据帧结构

现代工业控制,往往需要由多个独立的控制模块来共同完成。它们之间通过串口通信完成复杂的控制过程,必须在通信过程中加入必要的通信协议,以提高系统的可靠性和稳定性;而要完成特定的通信协议,就得有一定的同步机制。下面介绍一下简化的串口通信数据帧结构,以便分析说明嵌入式系统串口通信过程中的帧同步方法。

假定串口发送的数据帧结构为:

其中:包头用于同步,一般是一个或多个ASCII 字符,本文中假定数据帧同步头有2字节(0xAA、0x55);包长表示数据包中除去包头和包长的字节数,一般用约定好的几个字节表示;类型为通信协议里规定的命令类型;数据为应发送的主要信息;校验通常采用单字节“异或”的方法。

2 2 串口通信中的帧同步方法串口通信中的帧同步方法串口通信中的帧同步方法

2.1 1 逐次比较的帧同步方法逐次比较的帧同步方法逐次比较的帧同步方法

首先等待串口数据,将接收到的第1个字节数据与约定好的包头信息的第1个字节进行比较。如果不正确,则等待新字节,直到接收的数据与包头信息的第1个字节相同。第1个字节比较正确以后,将收到的第2个字节与包头信息的第2个字节进行比较。如果仍然正确,则说明串口接收已经同步,可以开始接收数据帧中的数据部分;否则,重新开始同步过程。其程序流程如图1所示。

此种方法代码量小,编程简单,一般用于在主程序中以非中断方式接收串口数据、实时性很差、数据帧较短的场合。但是,在串口速度过快且包头字节数比较多的情况下,串口实现同步花费的时间很长或很难实现同步。例如,串口接收到序列Ox0O OxAA0xAA 0x55…,当遇到第一个“0xAA”时,该方法认为第1个字节正确开始比较第2个同步头。第2个字节仍是“0xAA”而不是“0x55”,所以必须等待新的字节重新开始比较第1个同步头。而紧随其后的是“0x55”,因而,此时包头的第1个字节也没有同步上。事实上,“0x00 OxAA”是干扰字节,“0xAA 0x55”才是通信协议中的同步头。

2.2 2.2 基于基于FIFO 队列的帧同步方法队列的帧同步方法

根据同步包头的长度,定义一个相同长度的全局字节数组,把该数组看成是一个如图2所示的先入先出(FIFO)的队列。程序流程如图3所示。

本例中定义两个字节HEADl 和HEAD2,都初始化为0xFF。同步时,丢弃数组头字节HEADl,数组中的所有数据向前移动一个字节,串口接收到的新字节存入数组末字节HEAD2中,将整个数组与协议中的包头

信息比较。如果正确,则置位已同步标志位,然后开始接收、存储有用数据;否则,继续等待同步。串口数据接收完后,不仅要清除已同步标志,还要把HEADl 和HEAD2两个字节都赋值0xFF;否则,将会影响下一帧数据的同步和接收。用前面提到的序列“0x00 0xAA 0xAA 0x55…”进行测试,随着串口接收中断收到新的字节。帧同步队列中的数据依次为:[0xFF,0xFF]→[0x00,0xFF]→[0xAA,0x00]→[0xAA,0xAA]→[0x55,0xAA]。此时,该算法检测出[HEAD2,HEAD2]==[0x55,0xAA],从而实现了同步,置位已同步标志位以便下 次进入串口接收中断服务子程序时开始接收数据包的数据部分。

此种方法与逐次比较的帧同步方法相比,能够比较快速、正确地检测出同步包头;但是如果包头的字节数很多,同步过程中每次进入串口中断服务子程序都要进行大量的字节搬移,将必然耗费很长的时间。为了使嵌入式系统更健壮,程序设计应把握的基本原则之一就是使中断处理程序最短。所以基于FIFO 队列的帧同步方法也不是最优的。

2.3 2.3 基于有限状态机的帧同步方法基于有限状态机的帧同步方法基于有限状态机的帧同步方法

为解决以上问题,可以采用基于有限状态机的设计方法。该方法将数据帧的接收过程分为若干个状态:接收信息头HEADl 状态、接收信息头HEAD2状态、接收包长状态、接收数据类型状态、接收数据状态及接收校验和状态。系统的初始状态为HEADl 状态,各接收状态间的状态转移图如图4所示,仍用前面提到的序列“0x00 0xAA 0xAA 0x55…”进行测试。随着串口接收中断新字节的接收,系统的接收状态依次为HEAD1→HEAD1→HEAD2→HEAD2→LEN。可见此时就是同步状态。该方法也快速、有效地实现了同步;但是需要注意的是,在每一次接收完1帧完整的数据之后,必须把系统的接收状态重新设置为HEADl,否则将会影响下一帧的数据接收。

此后,程序按照协议开始依次接收数据帧长度、命令类型、数据和校验位。接收完后,重新设置系统接收状态为HEADl,同时对该数据帧进行校验。校验正确后,利用消息机制通知主程序根据命令类型对数据帧进行处理或执行相应的命令操作。

下面给出该方法在KeilC5l 中的示例程序:

由于采用了状态机和消息机制的结构,上述设计思路快速有效地实现了串口通信的同步,而且程序结构清晰,便于维护,也易于向其他的串口通信协议移植。另外,串口中断服务子程序中需要处理的工作很少,每个串口接收中断平均耗时不超过20个机器周期(在单片机AT89C5l 中),大大减轻了串口接收中断服务程序的压力,缓解了嵌入式系统有限资源与需求之问的矛盾,提高了嵌入式系统的稳定性。 3 3 结论结论结论

从上面的分析和测试可以看出,基于有限状态机的串口通信帧同步方法是本文中提出的3种帧方法中最优的,结构清晰且系统资源利用率高。

对一个有着完整通信协议的串口中断来说,因为要比较命令头、完成校验、解析数据等需要耗费大量的机器周期,所以嵌入式系统中的串口中断服务程序设计显得更为重要。在实际的串口通信程序中,可采用状态机和消息机制相结合的方法,仅在中断服务程序中设置一个标志,而在主程序中根据相应标志来作处理,这样就回避了某些中断可能需要较长处理时间的问题。在程序结构上,由于采用状态机的结构,既提高了可读性。同时又提高了运行速度,因而该方法不仅是一种很好的帧同步方法,还是一种很不错的串口通信程序设计方法 。

2020年嵌入式串口通信设计参照模板

***************** 实践教学 ******************* 兰州理工大学 计算机与通信学院 2013年春季学期 嵌入式系统开发技术课程设计 题目:嵌入式串口通信设计 专业班级:通信工程四班 姓名: 学号: 指导教师: 成绩:

嵌入式是以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。随着嵌入式系统的发展和大规模应用,为了提升系统的整体性能,必须实现PC机和嵌入式计算机之间的通信。在实际开发应用中,串口通信是不可缺少的部分。 目前嵌入式系统与PC机之间一种非常重要而且普遍应用的通信方式。本文通过基于2410F 的嵌入式串口通信的实现,按照嵌入式系统的软、硬件结构组成,较为详细地介绍了串口通信的硬件电路和软件实现方法。通过与计算机串口间的接,实现在ARM 平台上,传输速率115200bps,接收来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端,实现监测。与外部设备通信的基本功能。 关键字:嵌入式系统,串口通信,Linux系统

前言 ------------------------------------------------------------------------------------------- - 4 - 一、串口通信概述--------------------------------------------------------------------------- - 5 - 1.1 串口通信的原理 ------------------------------------------------------------------ - 5 - 1.2 串口通信的开发工具 ------------------------------------------------------------ - 5 - 1.2.1 2410F硬件平台简介---------------------------------------------------------- - 5 - 1.3 串口通信的基本任务 ------------------------------------------------------------ - 8 - 二、系统分析--------------------------------------------------------------------------------- - 9 - 三、串口驱动程序设计 ------------------------------------------------------------------- - 17 - 3.1 串口操作需要的头文件 -------------------------------------------------------- - 17 - 3.2 打开串口 -------------------------------------------------------------------------- - 17 - 3.3 串口设置 -------------------------------------------------------------------------- - 18 - 3.4 串口读写 -------------------------------------------------------------------------- - 20 - 3.5 关闭串口 -------------------------------------------------------------------------- - 22 - 四、总结-------------------------------------------------------------------------------------- - 23 - 参考文献-------------------------------------------------------------------------------------- - 24 - 附录----------------------------------------------------------------------------------------- - 25 -

嵌入式系统实验报告-串行通信实验

《嵌入式系统实验报告》 串行通信实验 南昌航空大学自动化学院050822XX 张某某 一、实验目的: 掌握μC/OS-II操作系统的信号量的概念。 二、实验设备: 硬件:PC机1台;MagicARM2410教学实验开发平台台。 软件:Windows 98/2000/XP操作系统;ADS 1.2集成开发环境。 三、实验内容: 实验通过信号量控制2个任务共享串口0打印字符串。为了使每个任务的字符串信息(句子)不被打断,因此必须引入互斥信号量的概念,即每个任务输出时必须独占串口0,直到完整输出字符串信息才释放串口0。 四、实验步骤: (1)为ADS1.2增加DeviceARM2410专用工程模板(若已增加过,此步省略)。 (2)连接EasyJTAG-H仿真器和MagicARM2410实验箱,然后安装EasyJTAG-H仿真器(若已经安装过,此步省略),短接蜂鸣器跳线JP9。 (3)启动ADS 1.2,使用ARM Executable Image for DeviceARM2410(uCOSII)工程模板建立一个工程UART0_uCOSII。(本范例在ADS文件夹中操作) (4)在ADS文件夹中新建arm、Arm_Pc、SOURCE文件夹。将μC/OS 2.52源代码添加到SOURCE文件夹,将移植代码添加到arm文件夹,将移植的PC服务代码添加到Arm_Pc文件夹。 (5)在src组中的main.c中编写主程序代码。 (6)选用DebugRel生成目标,然后编译链接工程。 (7)将MagicARM2410实验箱上的UART0连接跳线JP1短接,使用串口延长线把MagicARM2410实验箱的CZ11与PC机的COM1连接。 注意:CZ11安装在MagicARM2410实验箱的机箱右侧。 (8)PC机上运行“超级终端”程序(在Windows操作系统的【开始】->【程序】->【附件】->【通讯】->【超级终端】),新建一个连接,设置串口波持率为115200,具体设置参考图3.5,确定后即进入通信状态。 (9)选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。 (10)全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。 (11)可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,在超级终端上观察任务0和任务1的打印结果。 五、实验结论与思考题(手写,打印无效): 1、如果任务0删除语句“OSSemPost(UART0_Sem);”,那么程序还能完全正常无误运行么?如果发生异常会出现什么现象?

电脑--电子秤通信 连接线制作方法

电脑--电子秤通信连接线制作方法 一.准备工作: 1.按电子秤(地磅表头)说明书制作好数据通讯线. PS:一般电子秤数据通讯线的制作连接方法: ①一般电子秤采用的RS232通信.其数据通讯线只使用3根线. ②如果电子秤端采用9芯连接头,则使用2,3,5三根线.那么其与电脑COM口9芯连接头的连接方式对应是:2-2,3-3,5-5(如采集不到数据请修改为:2-3,3-2,5-5再试) ③如果电子秤端采用15芯连接头,则使用6,7,8三根线,那么其与电脑COM口9芯连接头的连接方式对应是:6-2,7-3,8-5(如采集不到数据请修改为:6-3,7-2,8-5再试) ④如果电子秤端采用25芯连接头,则使用2,3,7三根线,那么其与电脑COM口9芯连接头的连接方式对应是:2-2,3-3,5-7(如采集不到数据请修改为:2-3,3-2,5-7再试) 2.电子秤(地磅表头)通讯参数设置. 一般电子秤(地磅表头)均可由操作者自行设置通讯参数.包括:波特率设置.数据传输方式. 其中波特率一般均支持:1200,2400,4800,9600. 数据传输方式:根据电子秤生产厂家的设定不同而不同. PS:一般电子秤数据传输入方式: ①连续传送:当电子秤开机并且稳定,不论当前称重情况,电子秤每100ms传送一笔称重数据至COM口.

②稳定传送:当电子秤开机并且稳定,且当前电子秤过磅中,且电子秤稳重后.系统自动传送一笔称重数据至COM口.(电子秤零点不传送.未稳定时不传送.每称重一次只传送一次.下一次电子秤必须回到零点后再次称重.) ③按键传送:当电子秤开机并且稳定,且当前电子秤过磅中,能过电子秤的K/B(按键)上某一特定按键后,系统自动传送一笔称重数据至COM口.(具体说明请参见电子秤说明书或咨询电子秤供应商.)

滤波法及数字锁相环法位同步提取实验 模拟锁相环实验 载波同步帧同步实验

实验十九滤波法及数字锁相环法位同步提取实验 实验项目三数字锁相环法位同步观测 (1)观测“数字锁相环输入”和“输入跳变指示”,观测当“数字锁相环输入”没有跳变和有跳变时“输入跳变指示”的波形。 从图中可以观察出,若前一位数据有跳变,则判断有效,“输入跳变指示”输出表示1;否则,输出0表示判断无效。 (2)观测“数字锁相环输入”和“鉴相输出”。观测相位超前滞后的情况 数字锁相环的超前—滞后鉴相器需要排除位流数据输入连续几位码值保持不变的不利影响。在有效的相位比较结果中仅给出相位超前或相位滞后两种相位误差极性,而相位误差的绝对大小固定不变。经观察比较,“鉴相输出”比“数字锁相环输入”超前两个码元。

(3)观测“插入指示”和“扣除指示”。 (4)以信号源模块“CLK ”为触发,观测13号模块的“BS2”。 思考题:分析波形有何特点,为什么会出现这种情况。 因为可变分频器的输出信号频率与实验所需频率接近,将其和从信号中提取的相位参考信号同时送入相位比较器,比较的结果若是载波频率高了,就通过补抹门抹掉一个输入分频器的脉冲,相当于本地振荡频率降低;相反,若示出本地频率低了时就在分频器输入端的两个输入脉冲间插入 一个脉冲,相当于本地振荡频率上升,从而了达到同步的目的。 思考题:BS2恢复的时钟是否有抖动的情况,为什么?试分析BS2抖动的区间有多大?如何减小这个抖动的区间? 有抖动的存在,是因为可变分频器的存在使得下一个时钟沿的到来时间不确定,从而引入了相位抖动。而这种引入的误差是无法消除的。减小相位抖动的方法就是将分频器的分频数提高。

实验二十 模拟锁相环实验 实验项目一 VCO 自由振荡观测 (1)示波器CH1接TH8,CH2接TH4输出,对比观测输入及输出波形。 实验项目二 同步带测量 (1) 示波器CH1接13号模块TH8模拟锁相环输入,CH2接TH4输出BS1,观察TH4 输出处于锁定状态。将正弦波频率调小直到输出波形失锁,此时的频率大小f1为 400Hz ;将频率调大,直到TH4输出处于失锁状态,记下此时频率f2为 9.25kHz 。 对比波形可以发现TH8与TH4信号输入与输出错位半个周期 如右图所示,方波抖动,说明处于失锁状态。 记下两次波形失锁的频率,可计 算 出 同 步 带 f=9.25KHz-400Hz=8.85KHz 。

嵌入式_USART 串口通讯

USART 串口通讯-存储池方式 【实验目的】 学习USART的特性及功能 学习USART 串口通讯的使用 【实验原理】 1. USART介绍 通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行 数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA方式,可以实现高速数据通信。 2. USART特性 全双工的,异步通信 标准格式 分数波特率发生器系统 ─发送和接收共用的可编程波特率,最高达 4.5Mbits/s 可编程数据字长度(8位或9位) 可配置的停止位-支持1或2个停止位 LIN主发送同步断开符的能力以及LIN从检测断开符的能力 ─当USART硬件配置成LIN时,生成13位断开符;检测10/11位断开符发送方为同步传输提供时钟 编码器解码器 ─在正常模式下支持3/16位的持续时间 智能卡模拟功能 ─智能卡接口支持ISO7816-3标准里定义的异步智能卡协议 ─智能卡用到的0.5和 1.5个停止位 单线半双工通信 可配置的使用DMA的多缓冲器通信 ─在SRAM里利用集中式DMA缓冲接收/发送字节 单独的发送器和接收器使能位 检测标志 ─接收缓冲器满 ─发送缓冲器空 ─传输结束标志 校验控制 ─发送校验位 ─对接收数据进行校验 四个错误检测标志 ─溢出错误通用同步异步收发器(USART) ─噪音错误 ─帧错误

帧同步机工作原理及其新技术应用

帧同步机工作原理及其新技术应用 2005-4-18 【摘要】本文从应用角度论述了帧同步机的作用、工作原理以及帧同步机的应用方式,并对新型帧同步机的技术亮点进行详尽介绍。 【关键词】同步帧同步机数字模拟 帧同步机在电视台的应用现在越来越普遍。帧同步机也称帧同步器(Frame Synchronzier),简称FS。它是一种可将某一路与系统不同步的电视信号使之能与系统同步工作的数字设备,通俗讲,是一种同步变换设备。 一.为什么要用帧同步机 在电视直播和播出系统中,各路信号之间存在着“同步”与“不同步”情况,所谓“不同步”有下列两种情形: (1)两个信号的同步信号时基(频率与相位)或扫描速率不相同,如两路由互不相干的同步机同步的信号源,它们之间的行同步(H)、场同步(V)、彩色副载波(SC)、PAL 识别脉冲(P)以及色同步门脉冲(K)完全是随机的关系,换句话说,这几种有关同步的信息脉冲之间是不同步的。图1示例中,在本地的演播室视频信号、录像机视频信号、硬盘信号等由于由本地同步机同步信号锁定,而转播信号则由转播车上的同步机信号锁定,卫星信号则由卫星信号源端的同步信号锁定,故它们三者之间的H、V、SC、K、P之间是随机的关系,不存在同步关系,就属于这种情况。这是一种外来信号源与本地信号源之间不同步的情况。 图1 (2)两路信号源虽然都锁相于同一部同步机,但由于它们的传输路径或传输路径不同,引入到达切换点的时间不一致。事实上,在实际的系统中,可能由于某些演播室地理位置离播出系统较远,尽管演播室信号同样锁定于本地同步机,但视频信号经长距离传输后到达切换台时,与其它的信号源,如录像机等信号时间关系不一致,就属于这种本地信号源之间不同步的情况。

串口通信基本接线方法要点

串口通信基本接线方法 龚建伟2001.6.20 目次:1.DB9和DB25的常用信号脚说明 2.RS232C串口通信接线方法 3.串口调试中要注意的几点 目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连,以回答前段网友的咨询。 1.DB9和DB25的常用信号脚说明 2.RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 ?同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; ?两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)

上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战 百胜。 3.串口调试中要注意的几点: ?不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; ?线路焊接要牢固,不然程序没问题,却因为接线问题误事; ?串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; ?强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。

帧同步、帧识别实验报告

帧同步识别、保护、提取实验 一、实验目的 1.掌握巴克码识别电路原理; 2.掌握同步保护电路原理; 3.掌握假同步、漏同步、捕捉态、维持态等概念; 4.通过设计性实验,培养学生用EPROM器件写入软件和利用应用手册,完成 该模块中识别、比较器的软、硬件的设计能力。 二、实验内容: 1、观察帧同步码元无误码时帧同步电路的维持态; 2、观察帧同步有一位错码时,帧同步的维持态和捕捉态; 3、观察同步电路的假同步现象和同步保护作用; 4、修改本模块中EPROM的参数即改变比较器的设置,完成相同的电路功能。(选做) 三、基本原理 (一)帧同步模块的原理框图及电原理图分别如图7-1和图7-2所示。 图7-1 帧同步模块原理框图 图7-1中各功能部分在图7-2中所对应元器件关系如下: 1.分频器:U3(74LS161)、U4(4075)、U2(74LS74)、U5(74H04) 2.串/并变换器:U9(74LS164) 3.识别器:U7(2764) 4.判决器:U10(74LS85) 5.人工与门限选择器:U13(74LS157)

6.自动门限:U14(74LS157) 7.人工门限:S1 8.人工门限显示:U16(74247)、U12(LCD) (二)电路基本原理 1.帧同步信号的识别与判决 串/并变换器U9将串行码变成并行码,并完成移位功能,当七位巴克码全部进入U9时,U9的输出端Q6Q5Q4Q3Q2Q1Q0=1110010,并送入U7(2764)帧头识别器。 识别器U7为EPROM器件,在U7中将串/并变换的输出信号与1110010码进行相关运算,使U7的数据输出端的D3D2D1D0有对应的相关输出。如当U7的A6A5A4A3A2A1A0=1110010时,则对应的 D3D2D1D0=0111时(十进制数为7),若A6A5A4A3A2A1A0=1110011(与巴克码错一位)时,则对应的D3D2D1D0=0110(十进制数为6) 比较判决器Ul0(74LS85)有两组输入数据,一组来自帧头识别器,另一组来白人工与白动门限选择器U13。U10的曲组输入数据A3A2A1A0与B3B2B1B0进行比较。只当A3A2A1A0大于或等于B3B2B1B0时U10的输出为“1”,其余输出为:“0”。因此,U10端不仅与来自识别器的数据有关。还与判决门限数据B3B3B1B0有关,还与判决门限数据B3B2B1B0有关。 2.帧同步信号的捕捉与同步保护 本模块是在捕捉态时,Ul0的B3B2B1B0=0111(十进制数为7);另一种是在同步态时,U10的B3B2B1B0=O110(十进制数为6)。在捕捉态时,只有当巴克码到来时(1110010),U10的A3A2A1A0=01111(十进制为7),满足A3A2A1A0A 大于或等于B3B2B1B0的条件,才有判决脉冲输出。 人工门限可以从略0000--0111(0--7)任意置定,可据实验需要,自行选择其门限值。同步保护电路输出的帧同步信号(图7-1)受状态触发器Q端输出的信号所控制。÷32分频信号的周期与比较器输出一个帧同步信号的周期相同,但相位一定相同。但只要比较器输出一个帧同步信号,对÷3 2分频器置零,使÷32分频信号T2的上升沿与判决输出信号Tl的下降沿同相。清零信号由判决器输出信号及÷3 2分频信号共同决定。当无基带信号输入(或虽有基带信号输入但识别器的输出低于门限值)时,判决器输出为0,与门l关闭,与门4打丌。÷32信号经与门4,输入到÷5计数电路。÷5计数电路的输出信号使状态触发器置“0”,从而关闭与门2无帧同步信号输出。此时Q的高电平把判决器门限置为7(门限开关为“自动”),且关闭或门,打开与门1,同步电路进入捕捉态。这时,只要比较器输出一个脉冲信号(认定为帧同步头),与门3就输出一个置“0”脉冲,使÷32电路置“0”,从而输出与帧同步信号同频同相的周期信号。判决器输出的脉冲信号通过与门1后,使状态触发器置“l”,从而打开与门2,输出输出帧同步信号。同时,Q=0,使判决门限降为6,打开或门。同步电路处于维持态。在维持态下,因判决门限低,故与门1,与门3禁止输出假同步信号使,假同步信号小改变÷32的工作状态,与门2的输出仍为正确的同步态。 在维持状态下,识别比较器也可能出现漏同步。但由于漏同步概率比较小,只要识别比较器小连续出现五次漏同步,则÷5电路就小输出信号,使维持状态小变。若识别器连续出现五交漏同步,则÷5电路输出要一个脉冲信号使维持态为捕捉态,重新捕捉帧同步码。(同步指示灯亮,表示同步态;同步指示灯灭表示捕捉态)

帧同步信号恢复实验报告

实验八 帧同步信号恢复实验 一、实验目的 1. 掌握巴克码识别原理。 2. 掌握同步保护原理。 3. 掌握假同步、漏同步、捕捉态、维持态概念。 二、实验内容 1. 观察帧同步码无错误时帧同步器的维持态。 2. 观察帧同步码有一位错误时帧同步器的维持态和捕捉态。 3. 观察同步器的假同步现象和同步保护作用。 三、基本原理 (A )原理说明 一、帧同步码插入方式及码型 1.集中插入(连贯插入) 在一帧开始的n 位集中插入n 比特帧同步码,PDH 中的A 律PCM 基群、二次群、三次、四次群,μ律PCM 二次群、三次群、四次群以及SDH 中各个等级的同步传输模块都采用集中插入式。 2.分散插入式(间隔插入式) n 比特帧同步码分散地插入到n 帧内,每帧插入1比持,μ律PCM 基群及△M 系统采用分散插入式。 分散插入式无国际标准,集中插入式有国际标准。 帧同步码出现的周期为帧周期的整数信,即在每N 帧(N≥1)的相同位置插入帧同步码。 3.帧同步码码型选择原则 (1)假同步概率小 (2)有尖锐的自相关特性,以减小漏同步概率 如A 律PCM 基群的帧同步码为001101,设“1”对应正电平1,“0”码对应负电平-1,则此帧同步码的自相关特性如下图所示 0 1 2 3 4 5 6 -6 -5 -4 -3 -2 -1 -1 -1 -1 -1 -5 -5 -5 -5 3 3 3 3 j 7 R(j)

二、帧同步码识别 介绍常用的集中插入帧同步码的识别方法。设帧同码为0011011,当帧同步 码全部进入移位寄存器时它的7个 输出端全为高电平,相加器3个输出端全为高电平,表示u i =1+2+4=7。 门限L 由3个输入电平决定,它们 的权值分别为1,2,4。 比较器的功能为? ??<≥=L u L u u i i o ,0,1据此可得以下波形: 三、识别器性能 设误码率为P e ,n 帧码位,L=n-m ,(即允许帧同步码错m 位),求漏识别概率P 1和假识别概率P 2以及同步识别时间t s 。 1.漏识别概率 正确识别概率为∑=--m n e e n P P C 0 )1(γγγ γ,故 ∑=--- =m n e e p P n P 0 1)1((1γ γ γγ,m=0时e nP P ≈1 门限L 越低,P e 越小,则漏识别概率越小。 2.假识别概率 n 位信码产生一个假识别信号的概率为n m n n P m C P -=-===∑202 20 2时γ γ 门限越高,帧码位数越多,则假识别概率越小。 3.同步识别时间t s P 1=P 2=0时,t s =NT s ,N 为一个同步帧中码元位数,T s 为码元宽度 一个同步帧中产生一个假识别信号概率为22)(NP P n N ≈-,故当P 1≠0、P 2≠0时 s s NT NP P t )1(21++= 分散插入帧同步码的同步识别时间为 s s T N t 2= L u 0 移位寄存器 PCM 码流 u 0

串口通信的接线方法

目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422、RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。 1、DB9和DB25的常用信号脚说明 2、RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 图2 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战百胜。 3、串口调试中要注意的几点: 不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; 线路焊接要牢固,不然程序没问题,却因为接线问题误事;

串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。 RS232C标准串口接线方法 (第二版) 检验仪器与微机的通讯主要是以RS232C标准接口为主,而串口的接线方法也有一定的标准,在此谈谈几种常用的串口接法,仅作参考: 一、标准接法 1、9对9(包括9针对9孔,9孔对9孔,9针对9针): 说明:以下的孔、针指串口线两端的串口,不过2、3有可能不交换 2-------------3 3-------------2 4-------------6 5-------------5 6-------------4 7-------------8 8-------------7 2、9对25(包括9孔对25孔,9孔对25针) 2-------------3 (备注:2、3有可能不交换) 3-------------2 4-------------6 5-------------7 6-------------20 7-------------5 8-------------4

嵌入式UART接口模块的设计

嵌入式UART接口模块的设计 引言 在计算机的数据通信中,外设一般不能与计算机直接相连,它们之间的信息交换主要存在以下问题: (1)速度不匹配。外设的工作速度和计算机的工作速度不一样,而且外设之间的工作速度差异也比较大。 (2)数据格式不匹配。不同的外设在进行信息存储和处理时的数据格式可能不同,例如最基本的数据格式可分为并行数据和串行数据。 (3)信息类型不匹配。不同的外设可能采用不同类型的型号,有些是模拟信号,有些是数字信号,因此采用的处理方式也不同。 为了解决外设和计算机之间的信息交换问题,即需要设计一个信息交换的中间环节接口。UART控制器是最常用的接口。 通用异步收发器(UniversalAsynchrONousReceiv2er/Transmitter,UART)是辅助计算机与串行设备之间的通信,作为RS232通信接口的一个重要的部分,目前大部分的处理器都集成了UART。 1 UART的数据格式 UART的数据传输格式。 图1 UART的数据传输格式 由于数字图像亚像素在计算机中是用8位二进制表示,因此UART传输的有效数据位为8位。传输线在空闲时为高电平,因此有效数据流的开始位设为0。 接着传输8位有效数据位,先从最低位开始传送。奇偶检验位可以设置为奇检验、偶校验或者不设置校验位,由于本系统使用的传输速率不高,为了加快开发进程,减少电路面积,因此没有设计奇偶检验模块,数据流中不设奇偶检验位。最后停止位为高电平。 2 UART的基本结构 设计的UART主要由UART内核、信号检测器、移位寄存器移位寄存器、波特率发生器和计数器组成,。 图2 UART基本结构 UART各个功能模块的功能如下文所述。 2.1 信号检测器模块 信号检测器用于对RS232的输入信号进行实时监测,一旦发现新的数据则立即通知UART 内核。信号检测器的仿真波形。 图3 信号检测器仿真波形图 其中,RxD第一次为低时,new_data信号阐述输出,之后RxD又变低,但由于信号检测器处于锁定状态,所以new_data信号并没有输出;最后,reset_n信号将信号检测器复位,RxD再次变低时,new_data又有输出。可见信号检测器的实现完全正确,其功能完全符合设计要求。 2.2 移位寄存器模块 移位寄存器模块的作用是存储输入或者输出数据。 当UART接收RS232输入时,移位寄存器在波特率模式下采集RS232输入信号,且保存结果;当进行RS232输出时,UART内核首先将数据加载到移位寄存器内,再使移位寄存器在波特率模式下将数据输出到RS232输出端口上。移位寄存器的仿真波形图。关键字:嵌入式嵌

帧同步提取试验

帧同步提取系统实验 一.实验目的 1、了解帧同步的机理 2、熟悉帧同步的性能 3、熟悉帧失步对数据业务的影响 二.实验内容 1、帧同步过程观察; 2、误码环境下的帧同步性能测试; 3、帧失步下对接受帧内的数据信号传输的定性观测。 三.实验仪器 1、JH5001通信原理综合实验系统一台 2、20MHz双踪示波器一台四.原理与电路 在TDM复接系统中,要保证接收端分路系统和发送端一致,必须要有一个同步系统,以实现发送端和接收端同步。帧定位同步系统是复接/解复接设备中最重要的部分。在帧定位系统中要解决的设计问题有:1)同步搜索方法;2)帧定位码型设计;3)帧长度的确定;4)帧定位码的码长选择;5)帧定位保护方法;6)帧定位保护参数的选择;等等。这些设计完成后就确定了复接系统的下列技术性能:1)平均同步搜捕时间;2)平均发现帧时间;3)平均确认同步时间;4)平均发生失帧的时间间隔;5)平均同步持续时间;6)失帧引入的平均误码率,等等。 通常帧定位同步方法有两种:逐码移位同步搜索法和置位同步搜索法。通信原理综合实验系统中的解复接同步搜索方法采用逐码移位同步法。逐码移位同步搜索法的基本工作原理是调整收端本地帧定位码的相位,使之与收到的总码流中的帧定位码对准。同步后用收端各

分路定时脉冲就可以对接收到的码流进行正确的分路。如果本地帧同步码的相位没有对准码流接收信号码流的帧定位码位,则检测电路将输出一个一定宽度的扣脉冲,将接收时钟扣除一个,这等效将数据码流后移一位码元时间,使帧定位检测电路检测下一位信码。如果下一位检测结果仍不一致,则再扣除一位时钟,这过程称“同步搜索”。搜索直至检测到帧定位码为止。因接收码流除有帧定位码型外,随机的数字码流也可能存在与帧定位码完全相同的码型。因此,只有在同一位置,多次连续出现帧定位码型,方可算达到并进入同步。这一部分功能由帧定位检测电路内的校核电路完成。 无论多么可靠的同步电路,由于各种因素(例如强干扰、短促线路故障等),总会破坏同步工作状态,使帧失步。从帧失步到重新获得同步的这段时间(亦称同步时间)将使通信中断。误码也将会造成帧失步。因此,从同步到下一次失步的时间因尽量长一些,否则将不断的中断通信。这一时间的长短表示TDM同步系统的抗干扰能力。抗误码造成的帧失步主要由帧定位检测电路内的保护记数电路完成,只有当在一定的时间内在帧定位码位置多次检测不到帧定位码,才可判定为帧失步,需重新进入同步搜索状态。逐码移位同步搜索法系统组成框图见图1所示。 语音信号的中断时间短于100ms,将不易被人耳分辨出来。但对某些数据终端传输却是不允许的。为能让学生能深入了解在有误码的环境下帧失步、同步和抗误码性能,在复接模块内专门设计了一个错码产生器(3种类型误码),通过错码设置跳线开关SWB02(E_SEL0,E_SEL1)选择不同的信道误码率(分别约为4×10—3、1.6×10—2和1×10—1)。学生能够观测到复接/解复接具有抗误码性能,即在小误码时帧同步锁定状态,加大误码帧帧失步,进入帧同步搜索(扫描)状态;另可测试不同误码和帧失步对话音业务的影响和观测对数据业务的影响。 五.实验步骤 准备工作:首先将解复接模块内的输入信号和时钟选择跳线开关KB01、KB02设置LOOP(自环)位置,使复接模块和解复接模块连接成自环测试方式;将复接模块内的工作状态选择跳线开关SBW02的m序列选择跳线开关M_SEL1、M_SEL2拔下,使m序列发生器产生全0码,将错码选择跳线开关E_SEL0、E_SEL1拔下,不在传输帧中插入误码。

基于linux的嵌入式串口通信

天津电子信息职业技术学院 嵌入式软件编程》课程报告 课程名称:基于linux 的嵌入式串口通信 课程代码:115229 姓名:甘琦 学号:48 专业:物联网应用技术 班级:物联S14-1 完成时间:2016 年10 月28 日

目录 摘要 (1) 前言 (2) 一、嵌入式串口通信概述 (2) 1.1嵌入式串口通信的原理 (2) 1.2嵌入式串口通信的开发工具 (2) 1.2.1 ............................................................. CC2530 功耗 2 1.2.2........................................................... ARM 简介 3 1.2.3................................................................ L inux 系统简介 3 1.3嵌入式串口通信的基本任务 (4) 1.4嵌入式串口通信协议及实现 (4) 二、RS-232C 标准 (5) 2.1引脚定义 (5) 2.2字符(帧)格式 (6) 2.3握手协议 (8) 2.4双机互连方式 (9) 2.4.1无硬件握手情况 (9) 2.4.2 .................................................................. DTR 和DSR握手情况9 三、嵌入式串口驱动程序设计 (10) 3.1嵌入式串口操作需要的头文件 (10) 3.2打开串口 (10) 3.3串口设置 (11) 3.4串口读写 (13) 3.5关闭串口 (14) 四、源程流程图 (15) 五、源程序代码 (15) 总结 (19)

RS232串口通信基本知识与实例

1,RS232串口通信基本知识 (1)目前较为常用的串口是9针串口(DB9。通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口;若距离较远,需附加调制解调器(MOD EM)。 (2)RS232C串口通信接线方法(三线制) 接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接 (3)DB9接口三线引脚定义 2 ---- RXD 接收数据 3 ---- TXD 发送数据 5 ---- GND 信号地 (4)串行通信方式 1)单工:信息只能单向传送 2)半双工:信息可双向传送但不能同时进行 3)全双工:信息可同时进行双向传送 (5)RS232逻辑电平 逻辑0电平规定为+5 ~ +15V之间;逻辑1是电平为-5 ~ -15V之间,因此在与单片机进行通信时需要进行电平转换 (6)RS232串行通信接口电路设计 (7)51单片机串行通信接口软件设计 1)两个重要指标:可靠性和速度,可靠性是第一位。 2)与串口通信相关的几个寄存器和控制位 TMOD:可以用它来设置定时器工作方式(如果在MCU中使用的是定时器来产生波特率,就需要对这个寄存器进行设置,通常设为0x20,即设置定时器1为8位自动重装定时器,即工作方式1) TH1和TL1:定时器1初始值(可通过波特率计算软件获得) TR1:开启定时器1 SCON:串口控制寄存器,通常设为0x50,即10位异步传输,由定时器1

产生波特率,无奇偶校验位,允许接收 PCON:这个寄存器主要用到它的最高位SMON,当最高位设为1时,原波特率加倍 ES:串口中断使能位 EA:全局中断使能位 3)波特率计算方法(使用一个名为“51波特率初值计算.exe”的小软件)第1步:选择定时器工作方式(方式2) 第2步:输入晶振值(11.0592) 第3步:选择波特率(9600) 第4步:设置SMOD值(0) 第5步:点击确定 第6步:将软件上显示值赋给TH1和TL1 4)串口初始化程序 void Initial_RS232(unsigned char rate) { //默认晶振值为11.0592MHz unsigned char Reload1; switch(rate) //根据拨码器设置波特率 { case 0: Reload1 = 0xE8; //2400bps break; case 1: Reload1 = 0xF4; //4800bps break; case 2: Reload1 = 0xFA; //9600bps break; case 3: Reload1 = 0xFD; //19200bps break; default: Reload1 = 0x00; break; } PCON = PCON|0x80; //SMOD = 1 ;波特率加倍 TMOD = 0x20; //0011,00010设置定时器1为8位自动重装计数器 SCON = 0x50; //0101,0000 8位可变波特率,无奇偶校验位 TH1 = Reload1; //设置定时器1自动重装数 TL1 = Reload1; TR1 = 1; //开定时器1 ES = 1; //允许串口中断 EA = 1; //开总中断 }

通信原理实验 自定义帧结构的帧形成及其传输 自定义帧结构的帧同步系统 实验报告

姓名:学号:班级: 第周星期第大节实验名称:自定义帧结构的帧形成及其传输/自定义帧结构的帧同步系统 一、实验目的 1.加深对PCM30/32系统帧结构的理解。 2.加深对PCM30/32路帧同步系统及其工作过程的理解。 3.加深对PCM30/32系统话路、信令、帧同步的告警复用和分用过程的理解。 二、实验仪器 1.ZH5001A通信原理综合实验系统 2.20MHz双踪示波器 三、实验内容 (一)自定义帧结构的帧形成及其传输 1.发送传输帧结构观测 (1)(2) m序列输入的序列为全0 所找的帧在图上标注了。 (3)调整开关信号。 箭头所指为改变的开关信号。

(4)调整m序列 什么都不接是全0可以看清,接时,可以看清。接M_SEL1和两2.发送帧同步指示的观测 可以观测到已经同步 3.解复接开关信号输出的观测 4.解复接m序列数据输出观测 接M_SEL0 & M_SEL1 接M_SEL0 接M_SEL1 全不接 只要接M_SEL0接收就看不清,全1(M_SEL0)和全0(都不接)都可以

(二)自定义帧结构的帧同步系统 1.帧同步过程观测 (1)输入全0码 可以同步 可以同步 (3)将开关信号设置为帧定位信号,将KB01拔出插入 左边是假同步,右边是真同步。说明开关序列边位帧同步序列以后会影响

2.在误码环境下的帧同步性能测试和数据传输的定性测试(1)通过设置,使信道的误码率为1*10^-1 无法同步,同时观察LED灯,发现LED灯闪烁无规律。 (2)通过设置,使信道的误码率为1.6*10^-2 仍旧不能同步。 (3)通过设置,使信道的误码率为4*10^-3 在误码率较小的情况下,可以同步。

基于linux的嵌入式串口通信

天津电子信息职业技术学院《嵌入式软件编程》课程报告 课程名称:基于linux的嵌入式串口通信 课程代码:115229 姓名:甘琦 学号:48 专业:物联网应用技术 班级:物联S14-1 完成时间:2016 年10 月28日

目录 摘要 (1) 前言 (2) 一、嵌入式串口通信概述 (2) 1.1 嵌入式串口通信的原理 (2) 1.2 嵌入式串口通信的开发工具 (2) 1.2.1 CC2530功耗 (2) 1.2.2 ARM简介 (3) 1.2.3 Linux系统简介 (3) 1.3 嵌入式串口通信的基本任务 (4) 1.4嵌入式串口通信协议及实现 (4) 二、 RS-232C标准 (5) 2.1引脚定义 (5) 2.2 字符(帧)格式 (6) 2.3握手协议 (8) 2.4 双机互连方式 (9) 2.4.1无硬件握手情况 (9) 2.4.2 DTR和DSR握手情况 (9) 三、嵌入式串口驱动程序设计 (10) 3.1 嵌入式串口操作需要的头文件 (10) 3.2 打开串口 (10) 3.3 串口设置 (11) 3.4 串口读写 (13) 3.5 关闭串口 (14) 四、源程流程图 (15) 五、源程序代码 (15) 总结 (19)

摘要 随着Internet的发展和后PC时代的到来,嵌入式系统以其可靠性强、体积小、专用性、成本低等特性得到日益广泛的应用。目前嵌入式系统技术已经成为了最热门的技术之一。与此同时,一个独立的嵌入式系统的功能缺陷也逐渐暴露出来。新一代嵌入计算系统的功能集成和应用模式使之迅速向网络化嵌入计算的方向发展,标准和统一的TCP/IP通信协议是独立于任何厂家的硬件的,因此嵌入环境下的实时网络通信成为嵌入计算技术研究的重点和热点。本文通过基于2410F 的嵌入式串口通信的实现,按照嵌入式系统的软、硬件结构组成,较为详细地介绍了串口通信的硬件电路和软件实现方法。 关键词:嵌入式串口通信 2410F

串口通信的连线方法

转载:目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。 1.DB9和DB25的常用信号脚说明 9针串口(DB9) 25针串口(DB25[被屏蔽广告]) 针号功能说明缩写针号功能说明缩写 1 数据载波检测 DCD 8 数据载波检测 DCD 2 接收数据 RXD 3 接收数据 RXD 3 发送数据 TXD 2 发送数据 TXD 4 数据终端准备 DTR 20 数据终端准备 DTR 5 信号地 GND 7 信号地 GND 6 数据设备准备好 DSR 6 数据准备好 DSR 7 请求发送 RTS 4 请求发送 RTS 8 清除发送 CTS 5 清除发送 CTS 9 振铃指示 DELL 22 振铃指示 DELL 2.RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 · 同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; · 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。 3.串口调试中要注意的几点: 串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。 单工、半双工和全双工的定义 如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。 如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。 如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。 电话线就是二线全双工信道。由于采用了回波抵消技术,双向的传输信号不致混淆不清。双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。 奇偶校验 串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符‘E’,其各位为:0100,0101=45H D7 D0 由于干扰,可能使位变为1,这种情况,我们称为出现了“误码”。我们把如何发现传输中的错误,叫“检错”。发现错误后,如何消除错误,叫“纠错”。 最简单的检错方法是“奇偶校验”,即在传送字符的各位之外,再传送1位奇/偶校验位。可采用奇校验或偶校验。

相关文档
最新文档