– V9 S3 z7 ?6 r, Y2 d常常在不同的论坛上看到很多新学Nios/NiosII的朋友们问几乎同样的问题,
. T8 ?( Z! G4 C” s5 H/ n形如:0 C/ `3 q# X H/ L/ q2 Q
. a( Y! S0 x+ W1 X6 S% _5 y/ O” RFPGA设计网论坛“请问NiosII下应该如何编写串口程序呢?有没有例子能让我参考一下?”) [& v% k2 I- D Q
– V, C/ d’ P” C# `: T* h* E
每次见到这样的帖子我都想回复他,但又觉得一言难尽,软件开发手册里面是有例子的,但是遗憾的是不够详细,所以即使回复一个人又会有很多人跟帖,感觉一句一句好像总是说不完。现在就在NiosII Step by Step这一部分里面给大家讲讲UART。注意,这只是我个人使用UART IP的经验,可能关于这个IP的很多底层细节都没有涉及到,或者还有一些特性我不知道或尚未使用过。所以这里只是给大家开个如何使用UART IP的头,具体更广泛更深层的应用还得靠大家继续分享你们的经验。毕竟,这只是入门的文档,不过,对于不是很复杂的应用(例如参加竞赛)应该差不多了,呵呵。9 v1 A& K j” q
/ I: a% Y1 z2 |( |! kFPGA设计网论坛首先要清楚UART模块的应用并不难,要对自己有信心。
0 @( X$ k” I4 f’ w2 Q1 ^’ g( |
( x U0 M/ f( w/ P- e本文将分为四个部分:FPGA设计网论坛. {& y) ?5 s0 @0 \7 U2 D: D O4 _
1)UART IP介绍调试串口通信的需要的工具;
1 f* j$ y” C5 U8 _0 N5 2)软件开发手册上的程序分析和两个最简单的例子;) W3 M/ `! n5 b+ X& p# A
3)实战部分:我个人用这个IP调过的两个不同模块及部分程序分析;FPGA设计网论坛8 ], d) P7 `4 p+ u
4)关于仿真以及目前使用该IP发现的问题(—啊???做好心理准备去接受哦,呵呵)
! A3 s! Y9 ^8 o/ U; V
: f( j0 Q8 U. c6 i(注:四个部分将分为两个part来介绍,本文是part 1 ,介绍前两个部分内容)
/ q2 q I H7 Z0 S6 ~
+ E9 c& \; T+ I8 J第1)部分:UART IP介绍及调试串口通信的工具
– G, @, ?( G” Y) D+ {4 Z* |9 l
7 I, h’ f& F% k% \: c+ u: O1 xUART(Universal Asynchronous Receiver/Transmitter),通用异步收发器,是嵌入式系统上很常用的一个串行接口。这么说的原因是因为RS-232串口本身由于数据速率比较慢而且误码率相对偏高,正在从笔记本电脑的接口配置中慢慢消失,逐渐被USB接口所代替。但是另一方面,由于其方便、简单、易用等特性,它在嵌入式系统中依然扮演着十分重要的角色。所以Altera才把UART作为一个连接Nios/NosII和其相关外设的IP放在SOPCBuilder里面供用户使用。Nios一代调试甚至用的就是直接是串口。
; o5 _3 J0 G$ J! b- MFPGA设计网论坛) a3 P5 v$ j2 o; g7 h
首先要注意的是:Altera所提供的UART IP虽然实现了RS-232接口的异步时序逻辑,但是不能直接连接或驱动一个RS-232串口。原因在于Altera大多数的FPGA器件不符合RS-232的逻辑电平规则,如果直接连上获驱动可能会损害器件。所以连接通过RS-232串口通信的一个设备时,在Nios/NiosII和外设接口之间要加电压转换芯片(例如 Maxim的 Max232),这样才能首先保证电气上没问题。所以大家在自制电路板时,一定别忘了这一点。
没有回复内容