реклама на сайте
подробности

 
 
> Можно ли передать по RS232 более 8 бит данных в одном фрейме?, формат фрейма передачи
Vagant
сообщение Feb 1 2010, 06:53
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Здравствуйте.

Скажите пожалуйста новичку - а можно ли передать более чем 8 бит в одном фрейме передачи через COM порт по интерфейсу RS232? В книжках обычно пишется что по этому интерфейсу асинхронно передаются фреймы формата:

стартовый бит - 8 бит данных - стоповый бит

где только 8 бит в одном фрейме.

А мне хотелось бы передавать с ПК на ПЛИС 64-битные коды (в каждом из которых первый байт является кодом команды а остальные 7 байт - данные). ПЛИС будет принимать такие 64-битные коды (фреймы) и в соответствие с кодом команды (первый байт во фрейме) будет обрабатывать данные переданные в остальных 6 байтах фрейма.

Можно ли вот так, в одном фрейме - передать с ПК сразу 64-битный код на ПЛИС?

Спасибо.

Сообщение отредактировал Vagant - Feb 1 2010, 07:12
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Vagant
сообщение Feb 1 2010, 14:59
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Спасибо большое за советы.

А нельзя просто запрограммировать FIFO достаточно большого размера на ПЛИС и соединить вход этого FIFO c Tx? (это когда компьютер передаёт). А потом, когда данные переданы с компьютера, просто читать одно за другим 64-битные слова из FIFO. Будет ли работать такой подход?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 1 2010, 15:28
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Vagant @ Feb 1 2010, 17:59) *
Будет ли работать такой подход?

В тепличных условиях - возможно. Но лучше принять хотя бы минимальные меры для синхронизации данных.
Go to the top of the page
 
+Quote Post
Vagant
сообщение Feb 1 2010, 16:21
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Цитата(aaarrr @ Feb 1 2010, 19:28) *
В тепличных условиях - возможно. Но лучше принять хотя бы минимальные меры для синхронизации данных.


Про синхронизацию - как я понимаю, у UART есть свой FIFO. А Tx этого UART будет соединён со входом serial-to-parallel shift register выход (64-битный, параллельный) которого будет подан на вход FIFO размера 1024 (к примеру) на 64. Этот shift register будет синхронизирован от CLK на FPGA board. То есть с каждым импульсом от CLK данные будут по одному биту записываться в FIFO. Имхо, должно работать. Потом данные уже просто считываются из FIFO с любой скоростью.

Сообщение отредактировал Vagant - Feb 1 2010, 16:22
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 1 2010, 16:25
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Vagant @ Feb 1 2010, 19:21) *
Имхо, должно работать.

На столе - будет. Хотя в вашей схеме отсутствует собственно UART: тактировать сдвиговый регистр чем будете?
Go to the top of the page
 
+Quote Post
Vagant
сообщение Feb 1 2010, 16:56
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Цитата(aaarrr @ Feb 1 2010, 20:25) *
На столе - будет. Хотя в вашей схеме отсутствует собственно UART: тактировать сдвиговый регистр чем будете?


Сдвиговый буду тактировать от CLK на плате (50 МГц). А вот с UART есть непонятки. Вообще я собираюсь это всё делать на Xilinx 3E 1600E Microblaze Development Board а там есть разьём RS232 а вот UART тоже должен быть но я его на самой плате не нашёл (искал чип MAXIM). В описании к плате указано только к каким пинам ПЛИС просоединён Tx и Rx. Может это Tx и Rx RS232 разьёма а UART вообще на плате нет? Пока что сам не понял этого момента.
Go to the top of the page
 
+Quote Post
XVR
сообщение Feb 2 2010, 09:04
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Vagant @ Feb 1 2010, 19:56) *
Сдвиговый буду тактировать от CLK на плате (50 МГц).
Ой! У вас RS232 на 50MBaud? cranky.gif
Цитата
Вообще я собираюсь это всё делать на Xilinx 3E 1600E Microblaze Development Board а там есть разьём RS232 а вот UART тоже должен быть но я его на самой плате не нашёл (искал чип MAXIM).
Не там искали. Он собирается внутри этой самой 'Xilinx 3E 1600E'
Зайдите на www.opencores.org и посмотрите какую нибудь корку UART'а попроще, много вопросов отпадет
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 10:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01401 секунд с 7
ELECTRONIX ©2004-2016