1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng công nghệ FPGA để thiết kế bộ truyền, nhận dữ liệu giao tiếp với máy tính trên thiết bị DE1 qua đường truyền UART - Trường Đại Học Quốc Tế Hồng Bàng

7 47 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 4,14 MB

Nội dung

Application of FPGA technology in design and construction of programmable electronics devices enables the exploitation of the advantages of programming techniques, creating f[r]

(1)

TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HỒ CHÍ MINH TẠP CHÍ KHOA HỌC

HO CHI MINH CITY UNIVERSITY OF EDUCATION JOURNAL OF SCIENCE ISSN:

1859-3100

KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ Tập 15, Số 12 (2018): 176-185

NATURAL SCIENCES AND TECHNOLOGY Vol 15, No 12 (2018): 176-185 Email: tapchikhoahoc@hcmue.edu.vn; Website: http://tckh.hcmue.edu.vn

ỨNG DỤNG CÔNG NGHỆ FPGA ĐỂ THIẾT KẾ

BỘ TRUYỀN, NHẬN DỮ LIỆU GIAO TIẾP VỚI MÁY TÍNH

TRÊN THIẾT BỊ DE1 QUA ĐƯỜNG TRUYỀN UART

Đặng Lành1*, Phm Xuân Hi2, Trương Trường Sơn3 1 Trường Đại học Đà Lạt

2 Viện Nghiên cứu Hạt nhân – Đà Lạt 3 Trường Đại học Sư phạm Thành phố Hồ Chí Minh

Ngày nhận bài: 23-7-2018; ngày nhận sửa: 03-12-2018; ngày duyệt đăng: 21-12-2018

TÓM TẮT

Ứng dụng công nghệ FPGA vào thiết kế, chế tạo thiết bịđiện tử khả lập trình cho phép khai thác mạnh kĩ thuật lập trình, tạo mềm dẻo linh hoạt hiệu cho thiết kế phần cứng Bài báo trình bày thiết kế mạch truyền, nhận liệu bit FPGA (sử dụng mạch DE1 hãng Altera) máy tính theo chuẩn giao tiếp UART chuyển cổng USB Sản phẩm thiết kếứng dụng hiệu quảtrong điều khiển tựđộng

T khóa: DE1-Altera, FPGA, UART, USB ABSTRACT

Application of FPGA technology in design of data transfer-receive devices interfacing to PC in DE1 board via UART

Application of FPGA technology in design and construction of programmable electronics devices enables the exploitation of the advantages of programming techniques, creating flexibility effectively for hardware design as well as control of peripheral devices This work presents an 8-bit data transfer-receive circuit design between FPGAs (using Altera's DE1 board) and computer via UART standard to USB cable Designed products can be used effectively for control of specialized automation

Keywords: DE1_Altera, FPGA, UART, USB 1 Đặt vấn đề

Kĩ thuật điều khiển tự động hóa coi ngành mũi nhọn, then chốt trường đại học Vì vậy, trường cần đầu tư xây dựng nhiều mơ hình, thí nghiệm thực hành chun ngành tựđộng hóa Với phát triển mạnh mẽ cơng nghệ điện tửđương đại, vi mạch bán dẫn lập trình đáp ứng kích thước nhỏ, cơng suất tiêu thụ thấp, tạo hệ thống điều khiển tựđộng ngày thông minh

và giải nhiều tốn phức tạp hơn, việc ứng dụng FPGA (Field

Programmable Gate Array) thiết bị lập trình được, cơng nghệ đột phá

(2)

TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM Đặng Lành tgk

toán hay yêu cầu khác phần cứng, thích hợp với mạch điều khiển tự động thông minh, giao tiếp PC, truyền nhận xử lí liệu tốc độ cao Từđó, sử dụng

FPGA để thiết kế, xây dựng số thí nghiệm thực hành dùng chuyên ngành tự động hóa cần thiết Để có thí nghiệm thực hành chip FPGA, quy trình thiết kế

hoàn chỉnh từ xây dựng phần cứng đến phần mềm phải trọng Mục tiêu báo dùng mạch DE1, hãng Altera sử dụng ngôn ngữ mô tả phần cứng VHDL (Very high speed integrated circuit Hardware Description Language) để thiết kế mạch truyền, nhận liệu bit ngoại vi với máy tính qua cổng giao tiếp RS 232 chuyển USB Sản phẩm thiết kếứng dụng hiệu quảtrong điều khiển tựđộng

2 Khái quát giao tiếp UART

UART (Universal Asynchronous Receiver Transmitter) gọi thu, phát liệu

không đồng nối tiếp [2] Truyền, nhận liệu theo chuẩn UART thực theo

phương thức song công, hay bán song công Bộ truyền UART làm nhiệm vụ phát bit byte liệu cách Bộ thu UART chịu trách nhiệm lắp ghép bit lại thành byte hồn chỉnh Mỗi UART gồm có hai ghi dịch, dùng làm thành phần việc chuyển nối tiếp sang song song ngược lại, nghĩa phát có nhiệm vụ chuyển đổi byte liệu từ song song sang nối tiếp thêm vào bit start,

stop để tạo thành khung truyền (frame) Dữ liệu truyền điều khiển xung clock gọi tốc độ baud, thu lấy mẫu tín hiệu, tập hợp lại khơi phục tín hiệu gốc Cơ chế lấy mẫu tín hiệu: bit thơng tin chia thành 16 điểm lấy mẫu [2], điểm lấy mẫu tín hiệu điểm bit thông tin

3 Thiết kế truyền, nhận FPGA

3.1 Sơ đồ khi tng th ca thiết kế

Sơ đồ khối cấu trúc tổng thể mạch truyền, nhận liệu FPGA máy tính

được trình bày Hình Mỗi khối có chức hoạt động riêng, FPGA

khối trung tâm kết nối tất khối chức lại Các khối có nhiệm vụ cụ thể sau:Khối led đoạn – hiển thị liệu từ FPGA gửi đi, liệu FPGA nhận từ máy tính hiển thị tham số cấu hình tốc độ baud; khối led đơn – hiển thị trạng thái bit

liệu từ FPGA gửi lên máy tính, hiển thị trạng thái nút điều khiển tích cực; khối

(3)

TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM Tập 15, S12 (2018):176-185

Hình Sơ đồ khối tổng thể thiết kế

3.2 Thc hin thiết kế bn mch DE1 ca Altera

3.2.1 Thiết kế khối chức chip FPGA mạch DE1

Hình Bản mạch DE1

Bản mạch DE1 trình bày Hình 2, sử dụng công nghệ

phần cứng công cụ CAD (Computer Aid Design) [5], cung cấp phương tiện tối ưu để nghiên cứu phát triển lĩnh vực logic số [4] Cơng trình nghiên cứu sử

(4)

TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM Đặng Lành tgk

nhận UART chip FPGA – Cyclone II EP2C20F484C7 Cấu trúc chương trình viết theo mơ hình gồm bốn phần tử (Hình 3): Khối tạo tốc độ baud, khối điều khiển – hiển thị, khối truyền liệu nối tiếp khối nhận liệu nói tiếp Trong khối tác vụ xử lí

đồng thời (process) sử dụng để thực đoạn chương trình nhỏ xử lí song song

như: Tạo bộđếm; chia tần; phát bit; lấy mẫu bit

Hình Sơ đồ thiết kế khối chức truyền nhận UART

3.2.2 Nguyên tắc hoạt động khối

Khối điều khiển – hiển thị (Control - Display)

(5)

TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM Tập 15, S12 (2018):176-185

Khối (Hình 4) thực hai chức năng: điều khiển hiển thị Tiếp nhận tín hiệu

điều khiển tx_in (mức thấp) để tạo tín hiệu tx_enable (mức cao) cho phép khối truyền

liệu hoạt động, lần nhấn nút tx_in (có thể giữ nút kéo dài vài xung clock) có xung tín hiệu tx_enable cho phép truyền hoạt động truyền khung liệu Chức

năng thứ hai hiển thị liệu truyền, nhận hiển thị giá trị tham số brg Hình trình

bày lưu đồ thuật toán khối hiển thị Khi switch = ‘1’, nhấn nút brg_in xuống mức thấp (brg_in = ‘0’), liệu vào data_in chuyển sang số integer (to_integer (dat_in)) nạp vào tham số brg khối baud rate, đồng thời liệu data_in chuyển sang số BCD (Binary Coded Decimal) Sau chuyển đổi tách thành số thập phân tương ứng với

hàng ngàn, trăm, chục, đơn vị, hiển thị số thập lên led đoạn Nếu switch = ‘0’

liệu vào data_in liệu nhận rc_data hiển thịtrên led đoạn

 Khối truyền liệu nối tiếp (Transmitter) Khối truyền liệu (Hình 5) nhận

được tín hiệu cho phép truyền tx_enable, khối truyền nhận bit liệu từ ngõ vào

data_in [7:0], sau chuyển liệu từ dạng song song sang dạng nối tiếp phát bit liệu nối tiếp qua chân tín hiệu uart_tx dựa tốc độbaud tính khối baud rate Quá trình truyền liệu thể

hiện cụ thểởlưuđồ thuật tốn (Hình 8) Bắt

đầu, ghi truyền tsr gán 10 bit trạng thái ‘1’ (tsr = “1111111111”), ngõ truyền uart_tx gán bit ‘1’ (uart_tx = ‘1’); đếm bit liệu phát tx_count gán

bằng (tx_count = “0000”) Khi chưa có tín

hiệu cho phép truyền (tx_enable), truyền

đang trạng thái chờ; có tín hiệu cho phép truyền, bit liệu vào ghép với bit start (trạng thái ‘0’) bit stop (trạng thái ‘1’) tạo thành khung truyền 10 bit Bộ

truyền chờ cạnh lên cạnh lên xung truyền brg_tx_clk (brg_tx_clk = ‘1’), có cạnh lên xung truyền brg_tx_clk bit

đầu tiên, bit start (có trọng số thấp nhất)

(6)

TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM Đặng Lành tgk

tx_count tăng lên đơn vị Nếu số lượng bit phát chưa đủ 10 bit phát tiếp tục phát bit liệu lên đường truyền theo xung nhịp brg_tx_clk; đủ 10 bit (tx_count = “1001”) đợi xung nhịp brg_tx_clk (brg_tx_clk = ‘1’) để kết thúc trình truyền byte liệu truyền trở trạng thái chờ, chuẩn bị cho trình truyền

liệu

 Khối nhận liệu nối tiếp (Receiver) Khối nhận liệu nối tiếp (Hình 6), phát bit start (mức ‘0’), lấy mẫu

liệu từ chân nhận tín hiệu nối tiếp uart_rx;

sau chuyển liệu từ dạng nối tiếp sang dạng song song Quá trình nhận liệu

được trình bày cụ thể lưu đồ thuật tốn Hình Bắt đầu, ghi nhận liệu rsr

được gán bit ‘0’ (rsr = “00000000”); đếm bit lấy mẫu samp_count gán (samp_count = “0000”); đếm bit

liệu nhận rx_count gán (rx_count = “0000”) Khi bit lấy mẫu chưa

bằng ‘0’ (uart_rx_sync = ‘1’), tức

nhận chưa phát bit start nên

nhận liệu trạng thái chờ; phát bit start, nhận chờ cạnh lên xung nhận brg_rx_clk (brg_rx_clk = ‘1’), có cạnh lên xung brg_rx_clk đếm mẫu samp_count tăng lên đơn

vị; tiếp theo, bộđếm mẫu đếm chưa đủ

8 bit tiếp tục đếm lên, đếm

đếm đủ bit mà tín hiệu lấy mẫu mức thấp bit start hợp lí chấp nhận chu trình thu nhận bit liệu, cịn bit start khơng hợp lí

truyền quay lại trang thái chờban đầu Chu trình thu bit liệu, bit lấy mẫu start mức thấp, nhận chờ cạnh lên xung nhận brg_rx_clk, có cạnh lên xung brg_rx_clk đếm mẫu samp_count tăng lên đơn vị, đếm mẫu đếm chưa đủ bit tiếp tục đếm lên đến bộđếm đếm đủ bit bộđếm bit liệu nhận rx_count tăng lên đơn vị, nghĩa nhận lấy mẫu (thu) bit

(7)

TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM Tập 15, S12 (2018):176-185

như trình đếm mẫu (samp_count) lấy mẫu (rx_count) dịch bit liệu vào ghi rsr tiếp tục nhận, nhận đủ bit lại Kết thúc trình nhận byte liệu nhận trở trạng thái chờ, chuẩn bị cho trình nhận liệu 4 Thực nghiệm bình luận kết quả

Sử dụng phần mềm Quartus II 9.0 hãng Altera [4] để soạn thảo biên dịch thiết kế Gán tín hiệu vào, thiết kế với chân I/O chip FPGA (Cyclone II EP2C20F484C7) mạch DE1, nạp thiết kế lên mạch DE1 Sơ đồ kết nối mạch DE1 máy tính trình bày Hình Dùng switch (từSW0 đến SW9)

để thiết lập tốc độ baud đưa liệu vào cho truyền; KEY làm tín hiệu điều khiển, KEY0: tín hiệu cho phép truyền, KEY1: cho phép truyền hoạt động, KEY2: reset KEY3: nạp tham số brg; bốn Led đoạn để hiển thị liệu truyền nhận FPGA máy tính, hiển thị tham số brg, thạch anh dao động cấp cho hệ thống 50MHz Sử dụng phần mềm Advanced Serial Port Terminal 5.5 để thực quan sát trình truyền, nhận liệu (Hình 8)

Hình Kết nối

Bản mạch DEI máy tính

Hình Giao diện

phần mềm Advanced Serial Port Terminal 5.5

4.1 FPGA truyn d liu lên máy tính

Để thực truyền, nhận liệu phải chuyển SW9 xuống mức ‘0’ Đưa liệu

vào đường truyền cách thay đổi trạng thái bit switch (từSW0 đến SW7),

liệu hiển thị mã nhịphân led đơn (từLEDR0 đến LEDR7) mã thập lục phân led đoạn (HEX0 HEX1) Nhấn nút cho phép truyền liệu (KEY0), byte liệu (ví dụ: 9C) led đoạn HEX0, HEX1 truyền sang máy tính (Hình 9) Phần mềm Advanced Serial Port Terminal nhận liệu hiển thị cửa sổ phần mềm (Hình 10) Tương tự tiếp tục truyền nhiều byte liệu khác với nhiều tốc

Ngày đăng: 01/04/2021, 12:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w