(完整版)外文翻译格式样本.docx

上传人:scccc 文档编号:12290958 上传时间:2021-12-03 格式:DOCX 页数:24 大小:64.28KB
返回 下载 相关 举报
(完整版)外文翻译格式样本.docx_第1页
第1页 / 共24页
(完整版)外文翻译格式样本.docx_第2页
第2页 / 共24页
(完整版)外文翻译格式样本.docx_第3页
第3页 / 共24页
(完整版)外文翻译格式样本.docx_第4页
第4页 / 共24页
(完整版)外文翻译格式样本.docx_第5页
第5页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《(完整版)外文翻译格式样本.docx》由会员分享,可在线阅读,更多相关《(完整版)外文翻译格式样本.docx(24页珍藏版)》请在三一文库上搜索。

1、毕业设计外文资料翻译学院:信息科学与工程学院专业:电子科学与技术姓 名: 康兴华学 号: 040704128外文出处: 填入英文资料名称 ( 用外文写 )附 件: 1. 外文资料翻译译文; 2. 外文原文。指导教师评语:签名:年月日附件 1 :外文资料翻译译文UART的核核的概况带有 Avalon 接口的通用异步接收 /发送器的核( UART 的核)所执行的方式是为了 沟通一个系统内置的 Altera FPGA 和外部设备之间的串行字符流。核实行 RS-232 协议 计时,并提供可调波特率,奇偶,停止和数据位,以及可选 RTS/CTS 的流量控制信号。 它的功能设置是可配置的,对于给定的系统,

2、它允许设计者实现必要的功能。核提供了一个简单的寄存器映射的 Avalon 存储器映射( Avalon-MM )的从属接口, 使 Avalon-MM 的主控外设(如一个 NiosII 处理器)通过读和写控制寄存器和数据寄存 器来简单的与核沟通。该 UART 的核是 SOPC Builder-ready,并且可以轻松的集成到任何 SOPC Builder 产 生的系统中,本章包含以下章节:“功能描述”见 8-2 页“设备和工具支持”见 8-4 页“在 SOPC Builder中对核实例化”见 8-4 页“硬件仿真考虑”见 8-9 页“软件编程模型”见 8-9 页1. 功能描述图 1 展示了 UAR

3、T 核的分块表核有两个用户可见部分:寄存器文件,它通过 Avalon-MM 从属端口来存取RS-232的信号, RXD , TXD , CTS和 RTS1.1 Avalon-MM 从属接口和寄存器该 UART 的核提供了一个 Avalon-MM 从属接口到内部寄存器文件。 连接用户接口 包含 6 个 16 位的寄存器:控制,状态, rxdata, txdata,除数, endofpacket。一个主控 外设,如一个 NiosII 处理器,可以使寄存器通过串行连接来控制核和传输数据。该 UART 的核提供了一个活跃的中断请求 ( IRQ)输出,当新的数据已收到或当核 心准备传输另一字符时,可以要

4、求一个中断,进一步的细节见8-20 页“中断行为”。Avalon-MM 从属端口有能力随流量控制来转移。该 UART 的核可用于连接直接存 储器( DMA )外设与 Avalon-MM 流量控制来使连续数据传输自动化。比如, UART 的 核和存储器之间。见“计时器核心”篇章细节。见“ Avalon 存储器映射接口规格”内容 来了解 Avalon-MM 接口细节。1.2 RS-232 接口该 UART 的核实现了 RS-232 的异步传输和接收逻辑。该 UART 的核通过 TXD 和 RXD 端口发送和接收串行数据。大多数 Altera 的 FPGA 系列产品的输入 /输出缓冲不符 合 RS-

5、232的电压水平, 如果由一个 RS-232连接器的信号来直接驱动, 将有可能受到损 害。为了遵守 RS-232的电压信号规格,在 FPGA的 I/O引脚与外部 RS-232连接器之间 需要一个外部电平移动式缓冲(例如 Maxim Max3237 )。该 UART 的核使用逻辑 0 为标志,逻辑 1 为空间 0 。必要的话, FPGA 里面的逆变 器可以用来扭转任何 RS-232 信号的极性。1.3 发射器的逻辑该 UART 的发射器包含一个 7位,8位或 9位的 txdata控制寄存器和一个相应的 7 位,8 位或 9位的发射移位寄存器。 Avalon-MM 主控外设通过 Avalon-MM

6、 从属端口来 写入 txdata 控制寄存器。当一个串行发射移位操作当前没有进展时,发射移位寄存器自 动从 txdata 寄存器上载入。发射移位寄存器直接提供 TXD 输出。数据以最低有效位元 ( LSB)开头,转移出 TXD 脚发送。这两个寄存器提供双重缓冲,当先前被写入的字符转移出时,一个主控外设可以将 一个新的数值写入 txdata 寄存器。该主控外设可以通过读状态寄存器的准备信号 (trdy), 发射器移位寄存器( tmt)以及发射器超支误差( toe)位来监测发射器状态。发射器逻辑自动插入 RS-232 的规格要求的串行 TXD 数据流中开始,停止和奇偶位 的正确数目。1.4 接收器

7、的逻辑该 UART 的接收器包括一个 7位,8 位,或 9 位接收器移位寄存器和相应 7 位,8 位或 9 位 rxdata控制寄存器。Avalon-MM 主控外设通过 Avalon-MM 从属端口来读 rxdata 控制寄存器。每次新的字符完全被收到时, rxdata 控制寄存器将自动从接收移位寄存器 载入。这两个寄存器提供双重缓冲。当随后的字符被转移到接收移位寄存器后,rxdata 寄存器可以保持先前收到的字符。主控外设通过读状态寄存器的读就绪( rrdy),接收器超时误差( roe),间隔检测 ( brk),奇偶误差率( pe),以及帧误差( fe)位可以监测接收器的状态。接收器逻辑 自

8、动检测 RS-232的规格要求的串行 RXD 数据流中开始, 停止和奇偶位的正确数目。 在 接收的数据中,接受器逻辑检查四个特殊状态(帧误差,奇偶误差,接受超时误差,间 隔),并设置相应的状态寄存器位( fe, pe,roe,brk)。1.5 波特率的产生该 UART 核的内部波特率时钟是来自 Avalon-MM 时钟输入。内部波特率时钟是由 一个时钟分频器产生的。该除数值可以来自下列情形之一:恒定值指定在系统生成时间16位值存放在除数寄存器 该除数寄存器是一个可选的硬件功能。如果在系统生成时间它不生效,那么除数值 固定,波特率不能改变。2. 设备和工具支持该 UART 的核能够针对所有 Al

9、tera 的 FPGA 产品。3. 在 SOPC Builder 中对核实例化在硬件中对 UART 实例化为每个 UART 的核制造了至少有两个输入 /输出端口:一 个 RXD 输入,一个 TXD 输出。硬件可能包括流量控制信号, CTS 输入和 RTS 输出, 这是可选的。设计者用 MegaWizard 接口在 SOPC Builder 为 UART 的核配置了硬件功能 集合。以下各节描述可行的选择。3.1 配置设置 本节叙述配置设置。3.1.1 波特率选择该 UART 的核能执行对于 RS-232 连接的任何标准的传输速率。 波特率可被两种方 式之一配置:固定率:波特率固定在系统生成时间,

10、且不能通过 Avalon-MM 从属端口改变。 可变率:基于除数寄存器中保持的时钟分频器值,波特率可变。主控外设通过向 除数寄存器中写入新值来改变波特率。波特率是基于 Avalon-MM 接口提供的时钟频率计算出来的。 在没有再生成的 UART 的核硬件情况下改变系统时钟频率将会导致不正确信号。波特率(位)的设置 复位后波特率的设置决定了默认的波特率。该波特率选项提供了标准的预设值(例如, 9600、 57600、115200bps),或者你可以手动输入任何波特率。 波特率值用来计算一个合适的时钟除数值以落实所期望的波特率。 波特率和除数值 的关系如下:除数=int(时钟频率) /(波特率)

11、+0.5 )波特率 =(时钟频率) /(除数 +1)波特率可以通过软件设置来改变。当设置开启时,硬件包含一个 16位除数寄存器, 并且地址偏移为 4。因为除数寄存 器是可写的,所以波特率可以通过向该寄存器写入一个新值来改变。当设置关闭时, UART 的硬件不包含除数寄存器。 UART 硬件实行一个常数(不可 改变)波特率除数,并且系统产生后,值不可改变。在这种情况下,写入地址偏移4 已无效。从地址偏移 4 读入产生了一个未定的结果。3.1.2 数据位,停止位,奇偶校验位该 UART 核的奇偶位,数据位和停止位是可配置的。这些设置固定在系统生成的 时候,它们不能通过寄存器文件改变。以下是可行的设

12、置:数据位设置见表 1表 1 数据位设置设置允许值描述数据位7,8,9该设置决定了 txdata, rxdata 和 endofpacket 寄存器的宽度。停止位1,2该设置决定了核随着字符传输一个还是两个停止位,不论停 止位如何设置,核总是在第一个停止位终止接收活动,而忽 略接下来所有的停止位。奇偶校 验无,偶数, 奇数该设置决定了 UART 传输字符时是否有奇偶校验, UART 是 否希望收到的字符有奇偶校验。见下文进一步的细节。奇偶设置当奇偶设置为无,传输逻辑传送数据,而无需包括一个校验位,并且接收逻辑假定 传入数据不包括校验位。当奇偶为无时,状态寄存器的 pe(奇偶误差)位是无效的,

13、总是为 0。当奇偶设置为奇数或偶数时,传输逻辑计算并插入所需的校验位到离开的 TXD 脚 发送码流,并接收逻辑检查到来的 RXD 码流中的校验位。如果接收器认定数据的奇偶 位不正确,状态寄存器的奇偶误差设置为 1。当奇偶设置是偶数时,如果一个字符中含“ 1”的个数为偶数,那么奇偶位是 0。否 则奇偶位为 1。同样的,当奇偶是奇数,如果一个字符中含“ 1”的个数为奇数,那么奇 偶位为 0。3.1.3 流量控制以下是可用的流量控制方案。包括 CTS/RTS 的引脚与控制寄存器位。 当此设置开启时, UART 的硬件包括: CTS_N(逻辑负 CTS)输入端口 RTS_N(逻辑负 RTS)输出端口状

14、态寄存器中的 CTS 位状态寄存器中的 DCTS 位控制寄存器中的 RTS 位控制寄存器中的 IDCTS 位基于这些硬件设施, Avalon-MM 主控外设可检测 CTS 和传送 RTS 流量控制信号。 CTS 输入和 RTS 输出端口直接同状态和控制寄存器的位相连,并没有直接影响到核的 其它任何部分。当包括 CTS/RTS 的引脚和控制寄存器位设置处于关闭状态时,核并不包括上面所 列的硬件。控制 /状态位 CTS,DCTS,IDCTS 和 RTS 将无效,它们总是为 0。3.1.4 Avalon-MM 随着流量控制的转移( DMA )该 UART 核的 Avalon-MM 接口有选择的使 A

15、valon-MM 随流量控制转移。这就允 许一个 Avalon-MM 主控外设只在 UART 核心准备接收另一个字符时写数据和只在核心 有可用数据时读数据。该 UART 核还可以有选择的包括 endofpacket 寄存器。 包括 end-of-packet 寄存器当此设置开启时, UART 的核包括:一个 7 位, 8 位或 9 位 endofpacket 寄存器地址偏移量为 5。数据宽度由数据位的 设置决定。状态寄存器中的 eop 位控制寄存器中的 ieop 位 Avalon-MM 接口中的 endofpacket 信号,来支持数据随流量控制转移到系统中其 他主控外设或从系统中其他主要外设

16、转移出。endofpacket(EOP)检测允许 UART 的核终止与 Avalon-MM 主控外设随着流量控 制的数据交易。 EOP 检测可以用一个 DMA 控制器。比如,使一个 UART 自动将收到的 字符写入存储器,直到到来的 RXD 流中遇到一个指定的字。这个终止字符的值取决于 endofpacket寄存器。当 endofpacket 寄存器不能正常工作时, UART 的核心将不包括上列的来源。向 endofpacket寄存器写入是无效的,读入则产生一个未定值。3.2 仿真设置当 UART 的核的逻辑生成,仿真模型也会产生。仿真模型提供的功能可以简化和 加快使用 UART 核的仿真系统

17、仿真设置的变化,从而不能影响硬件中 UART 的核的行 为。这些设置只是影响功能仿真。比如,如何使用下列设置模拟 NiosII 系统,它涉及 到 AN351 :模拟 NiosII 嵌入式处理器设计。3.2.1 模拟 rxd 输入字符流您可以输入字符流,只要模拟系统复位,它将会到达 RXD 端口被模拟。该 UART 核的 MegaWizard 接口接收一个任意字符串, 它后来被合并到 UART 仿真模型中。 复位 端复位后,随着核能够接收新的数据,字符串会逐字的输入到 RXD 端口。3.2.2 编写互动窗口在系统生成的时候, UART 的核发生器可以产生 ModelSim 宏。它使仿真期间与UA

18、RT 模型的通信便利。以下方案可供选择:创造 ModelSim 别名打开流输出窗口创造 ModelSim 宏来打开一个可显示所有从 TXD 端口的输出的窗口。创造 ModelSim 别名打开互动的激励窗口创造一个 ModelSim 宏来打开一个为 rxd 端口接收激励的窗口,这个窗口可将打印在窗 口上的任何字符发送给 rxd 端口。3.2.3 模拟发射器波特率RS-232的传输速率往往慢于系统中的其他任何进程,模拟真正波特率的功能模型 时,这是很少有用的。例如,在传输速率为 115200 时,它通常需要几千个时钟周期来 传输一个单一的字。该 UART 的仿真模型有能力运行一半的时钟常数,这使得

19、模拟 UART 用一半的系统时钟速度,可以转移一位,即约为每 20 个时钟周期一个字。您可 以选择下列情形之一的模拟发射器波特率:加速(使用除数 =2):仿真时, TXD 脚每两个时钟周期发送一位。实际(使用真实波特率除数): TXD 脚以实际波特率传输,其值由除数寄存器决 定。4. 硬件仿真考虑当使用 ModelSim 模拟器时,仿真功能创造了方便的模拟 Nios,NiosII 或 Excalibur 处理器的系统。 每个处理器的文件编制记录了这些功能的建议用法。 其他用途也有可能, 但将需要额外的用户努力,以创造一个定制的模拟过程。仿真模型在 UART 核的高层 HDL 文件中被执行。合成

20、 HDL 在同一文件里被执行。 仿真的特点是采用了翻译开启和翻译关闭合成指令来执行,使某些路段的 HDL 代码对 综合工具来说可见。如果你是用 Altera 的推荐仿真程序,那么不编辑仿真指令。如果你 为自己定制的仿真流程改变了仿真指示, 那么请注意 SOPC Builder在系统生成期间会改 写现有文件。采取防范措施确保你的修改不被覆盖。关于 NiosII 处理器系统模拟 UART 的核的细节请看 AN351:模拟 NiosII 处理器的 设计。为详细了解在 Nios 的嵌入式处理器系统模拟 UART 的核 AN189:模拟 Nios 的嵌 入式处理器的设计。5. 软件编程模型以下章节描述

21、UART 的核的软件编程模型的建立,包括寄存器映射和软件声明来 访问硬件。对 NiosII 处理器的用户, Altera 提供了硬件抽象层 (HAL) 系统库驱动器,它 使你用 ANSIC 的标准库函数访问 UART ,如 printf( )和 getchar( )。5.1 HAL 系统库支持该 Altera 公司提供的驱动程序所执行的 HAL 字符模式的装置驱动器对 NiosII 系统 来说,可以整合到 HAL 系统库。 HAL 用户应通过熟悉的 HAL 的API和 ANSIC的标准 库来访问 UART ,而不是访问 UART 寄存器。 ioctl( )的要求是指允许 HAL 用户控制硬 件

22、依赖性方面的 UART 。注意:如果你的程序使用 HAL 设备驱动器来访问 UART 硬件,对设备寄存器的直 接访问将干扰驱动器的正确行为。对 NiosII 处理器的用户来说,HAL 系统库 API 提供了完全的 UART 核的功能。NiosII 程序把 UART 的核看作是一个字符模式装置,并通过使用 ANSIC 的标准库函数同时发 送和接收数据。该驱动支持在 SOPC Builder中有效的 CTS/RTS控制信号,见 8-11页“驱动器的选 择:快与小的执行”。下面的代码显示了最简单可行的使用,印刷信息标准输出使用printf( ) 。在这个例子中, SOPC Builder系统包含一个

23、 UART 的核,并且 HAL 系统库已配置好,以使用这 个装置来标准输出。例如:印刷字符到一个 UART 的核,作为标准输出#include<stdio.h>int main()printf("Hello world.n");return 0;下面的代码显示了使用的标准库从 UART 装置读字符和向 UART 装置发送信息的 过程。在这个例子中,SOPC Builder系统中包含一个 SOPC Builder的系统包含一个 UART 的核命名为 uart1,它不一定作为标准输出设备被配置。在这种情况下,程序对装置就 像任何其他节点中的 HAL 文件系统一样。例

24、如:发送和接收字符。/* A simple program that recognizes the characters 't' and 'v' */#include <stdio.h>#include <string.h>int main ()char* msg = "Detected the character 't'.n"FILE* fp;char prompt = 0;fp = fopen ("/dev/uart1", "r+"); /Open file

25、for reading and writingif (fp)while (prompt != 'v') / Loop until we receive a 'v'.prompt = getc(fp); / Get a character from the UART.if (prompt = 't') / Print a message if character is 't'.fwrite (msg, strlen (msg), 1, fp);fprintf(fp, "Closing the UART file.n&quo

26、t;);fclose (fp);return0;该 NiosII 软件开发者的手册提供了完整的 HAL 系统库的详细情况。5.2 驱动器的选择:快与小的执行 为容纳所需的不同类型的系统, UART 的驱动提供了两种变体: 一种快速的版本和 一个小型版本。 快速行为都将被默认使用。 无论是快速和小型驱动器完全支持 C 标准库 函数和 HAL 的 API 。快速驱动器是一个中断驱动的执行, 当设备尚未准备好发送或接收时, 它允许处理 器执行其它任务。 因为 UART 的数据传输速率与处理器相比缓慢, 快速的驱动器能给系 统提供一个较大的执行优点,使系统在过渡期间可以执行其它任务。小型驱动器是询问执

27、行的, 它在发送和接收每个字符之前要等待 UART 硬件。有两 种启动小轨迹的驱动器。为 HAL 系统库工程进行小轨迹设置。 这个选择也会影响系统中所有设备的设备驱 动器。注明预处理选项-DALTERA_AVALON_UART_SMALL 。如果你要用小型、 询问执行的 UART 驱动 器,你可用这一选项,但你不能影响其它设备的驱动器。见 NiosII IDE 的帮助系统详细了解如何设置性能及预选项。如果 CTS/RTS 流量控制信号在硬件中被允许, 那么快速驱动器可以自动使用它们, 小型驱动器总是忽略它们。5.3 ioctl( ) 运行该 UART 的驱动支持 ioctl( ) 函数让基于

28、HAL 的程序要求装置的具体运行。表 2 界 定了 UART 驱动支持的操作要求。表 2 UART ioctl( ) 操作请求含义TIOCEXCL锁定设备以免额外的访问。很难进一步的用open()访问设备直到这个文件描述器关闭或使用 TIOCNXCL ioctl 请求来解除锁定。 为了让请求得以实现, 这个设备没有其他存 在的文件描述器。 ioctl “arg参”数将被忽略。TIOCNXCL解除对之前的额外访问的锁定。详见上文内容。 ioctl “ a参rg数”将被忽略。额外的操作要求也只供快速驱动选择,如表 3 为使这些操作在你的程序中运行,你 必须设置预选项。-DALTERA_AVALON

29、_UART_USE_IOCTL 。表 3 仅对快速驱动的可选 UART ioctl ()操作请求含义TIOCMGET通过填写输入 termios ( 1)结构的内容来返回设备的当前设置。这个结构 的指针作为 ioctl “ opt”参数的值。TIOCMESET根据输入 termios 结构( 1)里的值来设置设备的配置。这个结构的指针作 为 ioctl “ arg ”参数的值。注: ( 1) termios 结构是指 newlibC 标准库。您可以在文件 <NiosII EDS install path>/components/ altera_hal/HAL/inc/sys/ter

30、mios.h 找到定义。参考 NiosII 软件开发手册详细了解 ioctl( )函数。5.4 局限性该 HAL 驱动程序用于 UART 的核,不支持 endofpacket 寄存器,见“寄存器变址” 一章。5.5 软件文件该 UART 的核伴随着以下软件文件。 这些文件确定了低层次的接口硬件, 并提供有 关的 HAL 驱动。应用开发商不应该修改这些文件。 altera_avalon_uart_regs-.这h 个文件定义了核心的寄存器变址,提供了象征性常数, 以访问低层次的硬件产品,该符号在此文件中使用的只有设备驱动程序的功能。 altera_avalon_uart.,haltera_ava

31、lon_uart.c这- 些文件为 HAL 系统库执行 UART 的核 心的设备驱动。5.6 Legacy SDK 路径该 UART 的核也为第一代 Nios 的处理器的 Legacy SDK 路径所支持。关于这些路 径的细节参考 “伴随第一代 Nios 的处理器的 UART 文件编制”。为详细了解基于 Legacy SDK 到 HAL 系统库 API 的升级程序,参考 AN350 : NiosII 处理器的升级 Nios 处理器 系统。5.7 寄存器映射程序员使用的针对第一代 Nios处理器的 HAL API 或 Legacy SDK从不通过寄存器直接访问 UART 核。一般而言,寄存器变址

32、只对程序员为核心作写设备驱动时有用注意: Altera 公司提供的 HAL 设备驱动程序可以直接访问设备寄存器。如果你是写驱动程序,并且 HAL 驱动对同样设备有用,那么你的驱动将会与之产生冲突而运行失败。表4是UART 的核的寄存器变址,设备驱动控制并通过存储器映射同核心沟通。表 4 UART 核的寄存器映射偏移寄存器读/写说明 /寄存器位151312111098765432100rxdataRO(1)(2)(2)收到数据1txdataWO(1)(2)(2)发送数据2Status(3)RW(1)eopct sdct s(1)errdytrdytmttoeroebrkfepe3controlR

33、W(1)ieoprtsidc tstrbkieirrdyitrdyitm tito eiroeibr kifeipe4Divisor(4)RW波特率除数5Endofpacket(4)RW(1)(2)(2)End-of-Packet 值注: (1)这些位均予以保留。读操作返回了一个未定值,写为0。(2)这些位可能或不可能存在,这取决于该数据宽度硬件的选择。如果它们不存在,它们会读0,而写操作无效。(3)写 0 到状态寄存器来清除 dcts, e, toe, roe, brk , fe, pe位。(4)这个寄存器可能或不可能存在,这取决于硬件配置选项,如果不存在,读返回一个未定值, 而写无效。一些

34、寄存器和位是可选的,这些寄存器只有当它们在系统生成时被启用,它们才会 存在于硬件中,可选的寄存器和位说明如下:5.7.1 rxdata 寄存器该 rxdata 寄存器通过 rxd 输入保持收到的数据。当一个新的字符通过 rxd 输入完全 收到时,它将被转移进 rxdata 寄存器,并且状态寄存器的 rrdy 位设置为 1。当读 rxdata 寄存器时,状态寄存器的 rrdy 位设置为 0。如果一个字符转入 rxdata寄存器而 rrdy 位也 已设定(即以前的字符不能恢复),那么将会发生接收器超时误差,并且状态寄存器的 roe 位设置为 1。不论以前的字符是否被读取,新的字符总是转移入 rxd

35、ata 寄存器。向 rxdata 寄存器写入数据是无效的。5.7.2 txdata 寄存器Avalon-MM 主控外设写入字符而被转移到 txdata 寄存器。字符不应被写入 txdata 直到发射器已经为新的字符准备好, 这由状态寄存器的 trdy位可以显示出来。 当一个字 符写入 txdata 寄存器时, trdy 位设置为 0。当字符从 txdat 寄存器被转移到发射器移位寄 存器时, trdy 位置为 1。如果当 trdy 位为 0 时,字符写入 txdata寄存器,结果是未定的。 读取 txdata 寄存器将返回一个未定值。举例来说,假设发射器逻辑是闲置的,并且 Avalon-MM

36、主控外设向 txdata 寄存器 写入第一个字符。 TRDY 位置为 0。当字符转移到发射器移位寄存器时,又置为 1。然 后主控外设将第二个字符写入 txdata寄存器, TRDY 位又被置为 0。然而这时移位寄存 器仍忙着向 TXD 输出移动第一个字符。直到第一个字符完全移出,第二个字符自动移 入移位寄存器, TRDY 位才置为 1。5.7.3 状态寄存器状态寄存器的个别位显示 UART 核内的特殊情况。每个状态位与控制寄存器内一 个相应的中断使能位相关。这个状态寄存器在任何时间都能读取,读操作不能改变任何 位的值。向状态寄存器写入 0会清除 DCTS,E,TOE,ROE,BRK,FE和 P

37、E位。状态寄存器位列在表 5。表 5 状态寄存器位位位名称读/写清除说明0(1)PERC奇偶错误。当收到的校验位有意想不到(不正确)逻辑水 平时,就发生了奇偶错误。当核接到的字符有不正确的校 验位, PE位设置为 1。PE 位保持设定为 1 ,直到它通过状 态寄存器的写操作被明确清除。 当 PE 位被设置时, 从 rxdata 寄存器的读操作产生了一个未定值。 如果奇偶校验的硬件 选项没有被激活,将无奇偶校验并且 PE 位总是为 0 。见 页 8-6" 数据位,停止位,奇偶 " 。1FERC帧错误。当接收器无法侦测到正确的停止位时,就发生了 帧错误。当核收到不正确的停止位时

38、, FE 位设为 1。FE 位 将保持设置 1,直到它通过状态寄存器的写操作被明确清 除。当 FE 位被设置时, 从 rxdata 寄存器的读操作产生了一 个未定值。2BRKRC间隔检测。当 RXD 脚保持低电平(逻辑 0)的持续时间超 过一个全字符时间(数据位加上开始,结束和奇偶位)时, 接收器的逻辑检测到间隔。当检测到一个间隔时, brk 位设 置为 1 。该 brk 位保持设定为 1 ,直至它通过状态寄存器 的写操作被明确清除。3ROERC接收超时误差。当新收到的字符在先前的字符被读取(即 当 RRDY 位是 1 )之前转移进 rxdata 保持寄存器,就会发 生接收超时错误。在这种情况

39、下, ROE 位设置为 1, rxdata 以前的内容也被新的字符覆盖。 ROE 位保持设置为 1 直到 它通过状态寄存器的写操作被明确清除。4TOERC传输超时错误。当新收到的字在先前的字符被转移进移位 寄存器(即当 TRDY 位是 0)之前写入 txdata 保持寄存器, 就会发生传输超时错误。在这种情况下, TOE 位设置为 1。 TOE 位保持设定为 1,直到它通过状态寄存器的写操作被 明确清除。5TMTR传输空状态。该 tmt 位显示发送器移位寄存器的当前状态。 当移位寄存器正在将一个字符移出TXD 脚时,TMT 设为 0。当移位寄存器处于闲置状态(即一个字符没有在传送), TMT

40、位是 1。一个 Avalon-MM 主控外设通过检查 TMT 位 可决定传输是否完成(并且在串行链路的另一端被收到)。6TRDYR传送准备。 该 TRDY 位显示 txdata 保持寄存器的目前状态。 当 txdata 寄存器是空的,它是为一个新的字符作准备,并 且 trdy 是 1。当 txdata 寄存器已满, TRDY 为 0。一个 Avalon-MM 主控外设在向 txdata 写入新的数据前必须等待 TRDY 为 1。7RRDYR接收字符准备就绪。该 RRDY 位显示 rxdata 保持寄存器的 目前状态。当 rxdata 寄存器是空的,这是没有准备好读和 rrdy 是 0。当一个新

41、收到的值转入 rxdata 寄存器, RRDY 设置为 1。读 rxdata 寄存器使 RRDY 位清为 0。一个 Avalon-MM 主控外设在读 rxdata 寄存器之前必须等待 RRDY 位等于 1。8ERC例外。 E 位显示一个发生的例外情况。 E 位是一个 TOE, ROE,BRK,FE,PE位的逻辑或。 E 位和其相应的在控制 寄存器的中断使能位( IE )的位提供一个方便的方法来针 对所有的错误情况启用 /禁用 IRQs。E 位通过状态寄存器的 写操作设置为 0。10( 1)DCTSRCCTS 的信号的改变。 每当逻辑层次的过渡在 CTS_N 输入端 口(采样同步 Avalon-

42、MM 时钟)被检测到时,该 DCTS 位设定为 1。这一位是由两个在 CTS N 的下降和上升过渡来 设定。 该 DCTS 位保持设定为 1,直至它通过状态寄存器的 写操作被明确清除。如果流量控制硬件选项没有被激活, DCTS 位总是为 0。见页 8-6 “流量管制”。11( 1)CTSRCTS 信号。 CTS 位反映了 CTS_N 输入的瞬时状态 (采样同 步 Avalon-MM 时钟)。因为 CTS_N 输入是逻辑否定的, 当逻辑电平 0应用到 CTS_N 输入时,CTS位是 1。该 CTS_N 输入对发送或接收的进程没有任何作用。 该 CTS_N 输入的 只有有形的影响是 CTS 和 D

43、CTS 位和一个 IRQ 的状态, 当 控制寄存器的 idcts 位启用时,它们就能产生。如果流量控 制硬件选项没有被激活,该 CTS 位总是为 0。见页 8-6“流 量管制”。12( 1)EOPR遇到包结束。该 EOP 位由下列情形之一的活动设定为1:一个 EOP 字符就被写入 txdata一个 EOP 字符从 rxdata 被读入该 EOP 字符是由 endofpacket 寄存器的内容决定的。 该 EOP 位保持设定为 1,直至它通过状态寄存器的写操作设置为0。如果“包括 endofpacket 寄存器”的硬件选项没有被激活, EOP 位总是 0。见 8-7 页的“ Avalon-MM

44、转移随流动控制 ( DMA )转移”。注: (1)这个位是可选的,并且在硬件中可能不存在。5.7.4 控制寄存器控制寄存器由一个个别位组成,它们每一个都控制 UART 的核运行的一个方面。 控制寄存器里的值在任何时间都可读取。控制寄存器的每一位使状态寄存器的相应位产生中断请求信号。 当状态位和相应的 中断使能位都为 1 时,核产生一个中断请求信号。比如, PE位是状态寄存器的“ 0”位, 而 IPE 位是控制寄存器“ 0”位。当 PE 位和 IPE 位都为 1 时,产生一个中断请求。控制寄存器位说明见表 6。表 6 控制寄存器位位位名称读/写说明0IPERW使中断了奇偶误差。1IFERW使中断

45、了帧误差。2IBRKRW使中断了一个间隔探测。3IROERW使中断了一个接收器超时误差。4ITOERW使中断了一个发射器超时误差。5ITMTRW使中断了一个发射器移位寄存器空状态。6ITRDYRW使中断了传输准备。7IRRDYRW使中断了读准备。8IERW使中断了一个例外。9TRBKRW传输间隔。 TRBK 位允许 Avalon-MM 主外设通过 TXD 输出传 输一个间隔字符。 当 TRBK 位设置为 1 时,TXD 信号被强制设 为 0。 TRBK 位超越了任何的逻辑电平,发送器逻辑将会驱动 RXD 输出。 TBRK 位可干扰任何传输的进程。 Avalon-MM 主 外设在适当的间隔时间过

46、去后,必须将 TRBK 设置回 1。10IDCTSRW使中断了 CTS 信号的改变。11( 1)RTSRWRTS 信号。 RTS 位可直接提供 RTS_N 输出。一个 Avalon-MM 主外设在任何时候都可写 RTS 位。 RTS 位的值只影响 RTS_N 输出;它不影响发送器或接收器逻辑。因为 RTS_N 输出是逻 辑否定的,当 RTS位是 1时, RTS_N 输出上是低逻辑电平 0。 如果流量控制硬件选项没有被激活, RTS 位总是为 0,写操作 无效。见 8-6 页“流量控制”。12IEOPRW使中断了包结束情况。注: (1)这个位是可选的,并且在硬件中可能不存在。5.7.5 除数寄存

47、器(可选)除数寄存器里的值用来产生波特率时钟,有效波特率是由公式计算的:波特率 =(时钟频率) /(除数 +1)这个除数寄存器是一个可选的硬件功能。 如果波特率可以通过软件更改的硬件选项 没有被激活,则除数寄存器是不存在的。在这种情况下,写入除数无效。读取除数返回 一个未定值。更多资料见 8-5 页“波特率选项”。5.7.6 endofpacket 寄存器(可选)endofpacket 寄存器里的值决定了可变长度 DMA 交易的 endofpacket 字符。复位后, 默认值是零,这是无效的 ASCII 字符(0)。更多相关资料,请参阅 8-16页的表 5 的对 eop位的描述。endofpacket 寄存器是一个可选的硬件功能。如果包括 endofpacket寄存器的硬件选 项没有激活,则 e

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1