0 / 0 / 0
Регистрация: 03.02.2018
Сообщений: 6
1

приемник последовательного порта

09.07.2018, 16:54. Показов 726. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как реализовывается приемник последовательного порта ????
и передатчик (= если не лень

на vhdl(предпочтительнее) или др
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2018, 16:54
Ответы с готовыми решениями:

Программирование кнопок с использованием последовательного порта
Здраствуйте! Мне нужно создать программу для контроля кнопок на геймпаде, используя...

[ADSP-2100] Инициализировать работу последовательного порта SPORT0
Имеется задание: Инициализировать работу последовательного порта SPORT0. тактовые синхроимпульсы:...

[ADSP-2189M EZ-KIT] Поясните настройки последовательного порта SPORT0 в программе
Здравствуйте, помогите, пожалуйста, разобраться в коде. Никак не могу понять программную реализацию...

Как поток данных с последовательного порта записать в массив типа char
Как реализовать запись символов приходящих с последовательного порта в массив char? Например при...

1
31 / 30 / 4
Регистрация: 22.03.2010
Сообщений: 126
18.07.2018, 15:42 2
Вот приемник. Рассчитан на входную частоту 57.6МГц. После успешного приема выставляет принятый байт на шину Data и формирует строб newByte.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
----------------------------------------------------------------------------------
-- Company: 
-- Engineer: 
-- 
-- Create Date:    16:35:21 02/07/2017 
-- Design Name: 
-- Module Name:    RxAFAR - Behavioral 
-- Project Name: 
-- Target Devices: 
-- Tool versions: 
-- Description: 
--
-- Dependencies: 
--
-- Revision: 
-- Revision 0.01 - File Created
-- Additional Comments: 
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
 
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
use IEEE.NUMERIC_STD.ALL;
 
-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
 
entity RxAFAR is
    Port ( Rx       : in   STD_LOGIC;
           Data     : out  STD_LOGIC_VECTOR (7 downto 0);
           clk      : in   STD_LOGIC;  -- Входная частота 57.6М
           Res      : in   STD_LOGIC;
           newByte  : out  STD_LOGIC);
end RxAFAR;
 
architecture Behavioral of RxAFAR is
 
  signal bData       : STD_LOGIC_VECTOR(7 downto 0);
  signal counter     : integer range 0 to 530;
  signal stop_count  : STD_LOGIC;
  signal startBitOK  : STD_LOGIC;
  signal stopBitOK   : STD_LOGIC;
  
  constant bit0      : integer :=  27;
  constant bit1      : integer := (27 + 1 * 55);
  constant bit2      : integer := (27 + 2 * 55);
  constant bit3      : integer := (27 + 3 * 55);
  constant bit4      : integer := (27 + 4 * 55);
  constant bit5      : integer := (27 + 5 * 55);
  constant bit6      : integer := (27 + 6 * 55);
  constant bit7      : integer := (27 + 7 * 55);
  constant bit8      : integer := (27 + 8 * 55);
  constant bit9      : integer := (27 + 9 * 55);
 
begin
 
 -- Как только на линии RX устанавливается низкий уровень, то 
 -- предполагаем, что это начало старт - бита и запускаем счетчик.
 -- Счетчик сбрасывается в 0 если есть команда остановки счета.
  process (Res, clk, stop_count)
  begin
    if Res = '1' then counter <= 0;
     elsif clk 'event and clk = '1' then
      if stop_count = '1' then counter <= 0;
      elsif counter = 0 and Rx = '0' then counter <= counter + 1;
      elsif counter > 0 then counter <= counter + 1;
    end if;
  end if;
  end process;
 
 
 -- Процесс, кроме всего прочего, формирует команду остановки счетчика при условии
 -- отсутствия приема старт бита и после приема последнего бита (стоп - бита).
  process (Res, clk, counter)
  begin
    if Res = '1' then bData          <= x"00";
                      startBitOK     <= '0';
                      stopBitOK      <= '0';
                      Data           <= x"00";
                      stop_count     <= '0';
    elsif clk 'event and clk = '1' then
      if counter = 0 then bData      <= x"00";
                          startBitOK <= '0';
                          stopBitOK  <= '0';
                          Data       <= x"00";
                          stop_count <= '0';
      elsif counter = bit0 and Rx = '0' then startBitOK <= '1';
      elsif counter = bit0 and Rx = '1' then stop_count <= '1';
             elsif (startBitOK = '1' and (counter = bit1 or 
                                          counter = bit2 or 
                                          counter = bit3 or 
                                          counter = bit4 or 
                                          counter = bit5 or 
                                          counter = bit6 or 
                                          counter = bit7 or 
                                          counter = bit8)) then bData <= bData(6 downto 0) & Rx;
             elsif (counter = bit9 and Rx = '1') then stopBitOK  <= '1';
                                                      stop_count <= '1';
                                                      Data       <= bData;
             elsif (counter = bit9 and Rx = '0') then stop_count <= '1';
                                                      Data       <= x"00";
      end if;
    end if;
  end process;
 
  newByte <= stopBitOK;
 
end Behavioral;

Будут вопросы по коду - задавайте.
1
18.07.2018, 15:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2018, 15:42
Помогаю со студенческими работами здесь

Программирование последовательного порта
Добрый день, камрады. Не знаю в верный ли подраздел форума я обращаюсь! Прошу строго не судить! Но...

Драйвер последовательного порта
Здравствуйте! У меня задача - немного поправить драйвер для платы последовательных портов...

Настройка последовательного порта
Добрый день. Возникла проблема с настройкой и, соответственно, использованием последовательного...

Имитация последовательного порта
Имеется программа, которая читает данные с последовательного порта из некоторого устройства. Так...

Мониторинг последовательного порта
Добрый день коллеги, работаю сейчас над проектом, где надо мониторить все устройства,...

Инициализация Последовательного порта
Добрый день, возник вопрос по инициализации последовательного COM порта. Открыл инфу по 14h...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru