整合串口收发

in WhereIN3 years ago

整合串口收发

弄明白了串口接收和发送的模块,就要思考怎么把收发弄到一起,串口既能收又能发,就完整了。

首先想到的就是例化,但前提是顶层接口是怎样的,说白了,还是得先建模。

建模的话,既然既有收,又有发,那么综合下来顶层接口就有clk,rst_n,tx_data,rs232_rx,这些是输入,而rs232_tx,rx_data,rx_done这些就是输出了。这样的话,好像例化确实可以。

但是,偶尔看见有人顶层接口信号的设计并不是收的信号和发的信号的和。而是根据功能选择是只对模块例化,还是增加额外的逻辑。

比如收发模块根据接收到的内容返回新的内容肯定例化的接口肯定和自收发功能的例化有区别。自收发一可以使接收到的数据传给发送模块再发送回去。就是“串口调试助手->rx->rx_data->tx_data->tx->串口调试助手”。所以它的顶层借口信号就只需要clk,rst_n,rx,tx就够了,至于rx_data(接收到的数据),tx_data(待发送的数据),po_flag(接收完成标志),tx_trig(发送触发信号)等只不过是内部连线罢了。

需要注意的是,例化实现顶层接口设计时内部连线均是wire型信号,这一点要和测试代码区分开,测试代码,输入是reg,输出是wire。

记得有时串口接收代码没有接收停止位,但是串口调试助手会发送停止位,1位,1.5位或者2位。所以接不接收不影响数据的接收。发送代码没有发送停止位,对于串口只用于接收到一个命令在返回一个应答的功能。不发送停止位也是可以的,因为返回应答后,总线被拉高,直到串口调试助手识别,有有足够的时间充当停止位了。

但是如果下位机一直给上位机发送数据,这样没准就有问题了。不过如果想实现新的功能时,就可以讨论讨论新的功能实现方法了。

[WhereIn Android] (http://www.wherein.io)

Sort:  

👍🏻!shop

[WhereIn Android] (http://www.wherein.io)

谢谢😊

[WhereIn Android] (http://www.wherein.io)

你好鸭,lucienyong!
@boylikegirl赠送1枚SHOP币给你!

目前你总共有: 27枚SHOP币

查看或者交易 SHOP币 请到 steem-engine.net.

无聊吗?跟我猜拳吧! **石头,剪刀,布~**

太专业 看不懂 😨

[WhereIn Android] (http://www.wherein.io)

嘿嘿😁

[WhereIn Android] (http://www.wherein.io)

早上好☕🌹

[WhereIn Android] (http://www.wherein.io)

晚上好,鱼鱼

[WhereIn Android] (http://www.wherein.io)

厉害👍!shop

[WhereIn Android] (http://www.wherein.io)

谢谢😊❤️

[WhereIn Android] (http://www.wherein.io)

你好鸭,lucienyong!

@adyiron给您叫了一份外卖!

奶黄包

吃饱了吗?跟我猜拳吧! 石头,剪刀,布~

如果您对我的服务满意,请不要吝啬您的点赞~

This post has been rewarded by the Steem Community Curation Project #wherein

昨天明明把手机放在桌上,今天又找不到了 ( ˘︹˘ )
咦?你是谁?我又是谁?
加入我们微信群没?还没的话赶快加我们瓜子老板。很帅的 iguozi <(^,^)>

Ha recibido un voto a favor de la comunidad WHEREIN, impulsada por STEEMIT INC. Gracias por usar WHEREIN

Terimakasih Sudah Menggunakan WhereIn, Postingan Anda Terpilih Untuk Mendapatkan Upvote Dari WhereIn Dan Di Dukung Oleh Steemit.inc !

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.030
BTC 62405.22
ETH 2436.36
USDT 1.00
SBD 2.62