Ứ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 SƯ PHẠM TP HỒ CHÍ MINH  
HO CHI MINH CITY UNIVERSITY OF EDUCATION  
TẠP CHÍ KHOA HỌC  
KHOA HỌC TỰ NHIÊN VÀ CÔ NG NGHỆ  
Tập 15, Số 12 (2018): 176-185  
JOURNAL OF SCIENCE  
NATURAL SCIENCES AND TECHNOLOGY  
Vol. 15, No. 12 (2018): 176-185  
ISSN:  
1859-3100  
Ứ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 Vin Nghiên cu Ht nhân – Đà Lt  
3 Trường Đại học Sư phạm Thành phHChí Minh  
Ngày nhn bài: 23-7-2018; ngày nhn bài sa: 03-12-2018; ngày duyệt đăng: 21-12-2018  
TÓM TT  
ng dng công nghFPGA vào thiết kế, chế to các thiết bị điện tkhlp trình cho phép  
khai thác thế mnh ca kĩ thut lp trình, to smm do linh hot và hiu qucho thiết kế phn  
cng. Bài báo này trình bày thiết kế mch truyn, nhn dliu 8 bit gia FPGA (sdng bn  
mch DE1 ca hãng Altera) và máy tính theo chun giao tiếp UART chuyn cng USB. Sn phm  
thiết kế ứng dng hiu quả trong điều khin tự động.  
Tkhó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 khin tự động hóa được coi là mt trong nhng ngành mũi nhọn, then  
cht của các trường đại hc. Vì vy, các trường cần đầu tư xây dựng nhiu mô hình, thí  
nghim thc hành vchuyên ngành tự động hóa. Vi sphát trin mnh mca công nghệ  
điện tử đương đại, nhng vi mch bán dn có thlp trình được đáp ứng kích thước nh,  
công sut tiêu ththp, to ra các hthống điều khin tự động ngày càng thông minh hơn  
và gii quyết được nhiu bài toán phc tạp hơn, trong đó việc ng dng FPGA (Field  
Programmable Gate Array) là thiết blp trình được, và là công nghệ đột phá mi nht  
hin nay. FPGA có khả năng tái lập trình nên đạt độ linh hoạt cao, đáp ứng nhiu thut  
176  
TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM  
Đặng Lành và tgk  
toán hay các yêu cu khác nhau vphn cứng, do đó thích hợp vi các mạch điều khin tự  
động thông minh, giao tiếp PC, truyn nhn và xlí dliu tốc độ cao. Từ đó, sử dng  
FPGA để thiết kế, xây dng mt sbài thí nghim thc hành dùng trong chuyên ngành tự  
động hóa là cn thiết. Để có bài thí nghim thc hành trên chip FPGA, quy trình thiết kế  
hoàn chnh txây dng phn cứng đến phn mm phải được chú trng. Mc tiêu ca bài  
báo là dùng bn mch DE1, hãng Altera sdng ngôn ngmô tphn cng VHDL  
(Very high speed integrated circuit Hardware Description Language) để thiết kế mch  
truyn, nhn dliu 8 bit gia ngoi vi vi máy tính qua cng giao tiếp RS 232 chuyn  
USB. Sn phm thiết kế ứng dng hiu quả trong điều khin tự động.  
2.  
Khái quát vgiao tiếp UART  
UART (Universal Asynchronous Receiver Transmitter) gi là bthu, phát dliu  
không đồng bni tiếp [2]. Truyn, nhn dliu theo chun UART có ththc hin theo  
phương thức song công, hay bán song công. Btruyn UART làm nhim vphát tng bit  
trong byte dliu mt cách tun t. Bthu UART chu trách nhim lp ghép các bit này  
li thành các byte hoàn chnh. Mi UART gm có hai thanh ghi dịch, được dùng làm thành  
phần cơ bản trong vic chuyn gia ni tiếp sang song song và ngược li, nghĩa là bphát  
có nhim vchuyển đi 1 byte dliu tsong song sang ni tiếp và thêm vào các bit start,  
stop để to thành khung truyn (frame). Dliu truyền đi được điều khin bng mt xung  
clock gi là tốc độ baud, bthu sly mu các tín hiu, tp hp li và khôi phc tín hiu  
gốc. Cơ chế ly mu tín hiu: mt bit thông tin được chia thành 16 điểm ly mu [2], điểm  
ly mu tín hiệu là điểm gia ca bit thông tin.  
3.  
Thiết kế btruyn, nhn trên FPGA  
3.1. Sơ đồ khi tng thca thiết kế  
Sơ đồ khi cu trúc tng thca mch truyn, nhn dliu gia FPGA và máy tính  
được trình bày Hình 1. Mi khi có mt chức năng hoạt động riêng, trong đó FPGA là  
khi trung tâm kết ni tt ccác khi chức năng còn li. Các khối đó có nhiệm vcthể  
như sau: Khối led 7 đoạn – hin thdliu tFPGA gửi đi, dữ liu FPGA nhn tmáy  
tính và hin ththam scu hình tốc độ baud; khối led đơn – hin thtrng thái các bit dữ  
liu tFPGA gi lên máy tính, hin thtrạng thái khi các nút điều khin tích cc; khi dữ  
liu vào – là các công tc có th‘on’ hoc ‘off’ thhin các bit dliu vào là ‘1’ hoc ‘0’;  
khối nút điều khin – là các nút nhn cho phép btruyn, nhn hoạt đng, cho phép truyn  
dliu, reset và np tham scu hình tốc độ baud; máy tính – thc hin quá trình truyn  
nhn dliệu. Để kết ni vi FPGA, tín hiu tcng RS232 ca máy tính phi qua mt  
mch chuyển đổi MAX232 [4] để trthành tín hiu theo chun UART; FPGA – là mng  
các phn tlogic lp trình được và được thiết kế bng ngôn nglp trình VHDL.  
177  
TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM  
Tập 15, S12 (2018): 176-185  
Hình 1. Sơ đồ khi tng thca thiết kế  
3.2. Thc hin thiết kế trên bn mch DE1 ca Altera  
3.2.1. Thiết kế các khi chức năng trên chip FPGA của bn mch DE1  
Hình 2. Bn mch DE1  
Bn mạch DE1 được trình bày Hình 2, sdng nhng công nghmi nht cvề  
phn cng và công cCAD (Computer Aid Design) [5], cung cp một phương tiện tối ưu  
để nghiên cu và phát trin vcác lĩnh vực logic s[4]. Công trình nghiên cu này sử  
dng 10 nút chuyn mch (switch), 4 nút nhấn (button), 10 led đơn đỏ (led red), 4 led đơn  
xanh (green led), 4 led 7 đoạn (7-seg display) và cổng RS232 để thiết kế. Sdng ngôn  
nglp trình phn cng VHDL [1], [2], [6] để thiết kế các khi chức năng của btruyn,  
178  
TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM  
Đặng Lành và tgk  
nhn UART trên chip FPGA – Cyclone II EP2C20F484C7. Cấu trúc chương trình viết theo  
mô hình gm bn phn tcon (Hình 3): Khi to tốc độ baud, khối điều khin – hin th,  
khi truyn dliu ni tiếp và khi nhn dliu nói tiếp. Trong các khi con tác vxlí  
đồng thi (process) được sdụng để thc hiện các đoạn chương trình nhxlí song song  
như: To ra các bộ đếm; bchia tn; bphát bit; bly mu tng bit.  
Hình 3. Sơ đồ thiết kế các khi chức năng của btruyn nhn UART  
3.2.2. Nguyên tc hoạt động tng khi  
Khối điều khin – hin th(Control - Display)  
Hình 4. Lưu đồ thut toán ca khi hin thị  
179  
TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM  
Tập 15, S12 (2018): 176-185  
Khi này (Hình 4) thc hin hai chc năng: điều khin và hin th. Tiếp nhn tín hiu  
điều khin tx_in (mc thấp) để to ra tín hiu tx_enable (mc cao) cho phép khi truyn dữ  
liu hoạt động, mt ln nhn nút tx_in (có thginút kéo dài vài xung clock) chcó mt  
xung tín hiu tx_enable cho phép btruyn hoạt động và truyn mt khung dliu. Chc  
năng thứ hai là hin thdliu truyn, nhn và hin thgiá trtham sbrg. Hình 7 trình  
bày lưu đồ thut toán ca khi hin th. Khi switch = ‘1’, nếu nhn nút brg_in xung mc  
thp (brg_in = ‘0’), dliu vào data_in schuyn sang sinteger (to_integer (dat_in)) np  
vào tham sbrg ca khối baud rate, đồng thi dliu data_in cũng chuyển sang sBCD  
(Binary Coded Decimal). Sau đó chuyển đổi và tách thành 4 sthập phân tương ứng vi  
hàng ngàn, trăm, chục, đơn vị, hin th4 sthập đó lên 4 led 7 đoạn. Nếu switch = ‘0’ dữ  
liu vào data_in và dliu nhận rc_data đưc hin thị trên 4 led 7 đoạn.  
Khi truyn dliu ni tiếp (Transmitter)  
Khi truyn dliu (Hình 5) nhn  
được tín hiu cho phép truyn tx_enable,  
khi truyn snhn 8 bit dliu tngõ vào  
data_in [7:0], sau đó chuyển dliu tdng  
song song sang dng ni tiếp và phát đi từng  
bit dliu ni tiếp qua chân tín hiu uart_tx  
da trên tốc độ baud đã được tính trong khi  
baud rate. Quá trình truyn dliệu được thể  
hin cthể ở lưu đồ thut toán (Hình 8). Bt  
đầu, thanh ghi truyền tsr được gán 10 bit  
trng thái ‘1’ (tsr = “1111111111”), ngõ ra  
btruyn uart_tx gán bit ‘1’ (uart_tx = ‘1’);  
bộ đếm bit dliệu phát đi tx_count gán  
bằng 0 (tx_count = “0000”). Khi chưa có tín  
hiu cho phép truyn (tx_enable), btruyn  
đang ở trng thái ch; khi có tín hiu cho  
phép truyn, 8 bit dliu vào sghép vi bit  
start (trng thái ‘0’) và bit stop (trng thái  
‘1’) to thành khung truyn 10 bit. Bộ  
truyn chcnh lên cnh lên ca xung  
truyn brg_tx_clk (brg_tx_clk = ‘1’), nếu có  
cnh lên ca xung truyn brg_tx_clk thì bit  
đầu tiên, bit start (có trng sthp nht) ca  
thanh ghi tsr đưc truyền đi, nghĩa là dliu  
mt bit này sgán cho ngõ ra uart_tx ca bộ  
truyền; đồng thi bộ đếm bit dliu phát  
180  
TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM  
Đặng Lành và tgk  
tx_count tăng lên một đơn vị. Nếu số lượng bit phát đi chưa đủ 10 bit thì bphát ctiếp  
tc phát bit dliệu lên đường truyn theo xung nhp brg_tx_clk; nếu đủ 10 bit (tx_count  
= “1001”) thì đợi ca xung nhịp brg_tx_clk (brg_tx_clk = ‘1’) để kết thúc quá trình  
truyn 1 byte dliu và btruyn trvtrng thái ch, chun bcho quá trình truyn dữ  
liu tiếp theo.  
Khi nhn dliu ni tiếp (Receiver)  
Khi nhn dliu ni tiếp (Hình 6),  
phát hin bit start (mc ‘0’), sly mu dữ  
liu tchân nhn tín hiu ni tiếp uart_rx;  
sau đó chuyển dliu tdng ni tiếp sang  
dng song song. Quá trình nhn dliu  
được trình bày cthể ở lưu đồ thut toán  
Hình 9. Bắt đầu, thanh ghi nhn dliu rsr  
được gán 8 bit ‘0’ (rsr = “00000000”); bộ  
đếm bit ly mẫu samp_count đưc gán bng  
0 (samp_count = “0000”); bộ đếm bit dữ  
liu nhn rx_count cũng được gán bng 0  
(rx_count = “0000”). Khi bit ly mẫu chưa  
bng ‘0’ (uart_rx_sync = ‘1’), tc là bộ  
nhận chưa phát hiện được bit start nên bộ  
nhn dliệu đang ở trng thái ch; khi phát  
hiện được bit start, bnhn chcnh lên  
ca xung nhn brg_rx_clk (brg_rx_clk =  
‘1’), nếu có cnh lên ca xung brg_rx_clk  
thì bộ đếm mẫu samp_count tăng lên 1 đơn  
v; tiếp theo, nếu bộ đếm mẫu đếm chưa đủ  
8 bit thì vn tiếp tục đếm lên, khi bộ đếm  
đếm đủ 8 bit mà tín hiu ly mu vn là  
mc thp thì bit start này hp lí và chp  
nhn chu trình tiếp theo là thu nhn các bit  
dliu, còn nếu bit start không hp lí thì bộ  
truyn quay li trang thái chờ ban đầu. Chu trình tiếp theo thu các bit dliu, trong khi bit  
ly mu start vn mc thp, bnhn chcnh lên ca xung nhn brg_rx_clk, nếu có  
cnh lên ca xung brg_rx_clk thì bộ đếm mẫu samp_count tăng lên 1 đơn vị, nếu bộ đếm  
mu đếm chưa đ8 bit thì vn tiếp tục đếm lên đến khi bộ đếm đếm đủ 8 bit thì bộ đếm bit  
dliu nhận rx_count tăng lên 1 đơn vị, nghĩa là bnhận đã ly mẫu (thu) được 1 bit dữ  
liu và dch bit dliệu đó vào thanh ghi rsr (uart_rx_sync & rsr (7 downto 1)). Tương tự  
181  
TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM  
Tập 15, S12 (2018): 176-185  
như vậy quá trình đếm mu (samp_count) ly mu (rx_count) và dch bit dliu vào thanh  
ghi rsr ctiếp tục cho đến khi bnhn, nhận đủ 9 bit còn li. Kết thúc quá trình nhn 1  
byte dliu và bnhn trvtrng thái ch, chun bcho quá trình nhn dliu tiếp theo.  
4.  
Thc nghim và bình lun kết quả  
Sdng phn mm Quartus II 9.0 ca hãng Altera [4] để son tho và biên dch thiết  
kế. Gán các tín hiu vào, ra ca thiết kế vi các chân I/O ca chip FPGA (Cyclone II  
EP2C20F484C7) trên bn mch DE1, np thiết kế lên bn mạch DE1. Sơ đồ kết ni gia  
bn mạch DE1 và máy tính được trình bày Hình 7. Dùng các switch (từ SW0 đến SW9)  
để thiết lp tốc độ baud và đưa dữ liu vào cho btruyn; các KEY làm tín hiệu điều  
khin, KEY0: tín hiu cho phép truyn, KEY1: cho phép btruyn hoạt đng, KEY2: reset  
và KEY3: np tham sbrg; bốn Led 7 đoạn để hin thdliu truyn và nhn gia FPGA  
máy tính, và hin ththam sbrg, thạch anh dao động cp cho hthng 50MHz. Sdng  
phn mm Advanced Serial Port Terminal 5.5 để thc hin và quan sát quá trình truyn,  
nhn dliu (Hình 8).  
Hình 7. Kết nối  
Hình 8. Giao diện  
giữa Bản mạch DEI và máy tính  
phần mềm Advanced Serial Port Terminal 5.5  
4.1. FPGA truyn dliu lên máy tính  
Để thc hin truyn, nhn dliu thì phi chuyn SW9 xung mức ‘0’. Đưa dữ liu  
vào đường truyn bằng cách thay đổi trng thái 8 bit ca các switch (từ SW0 đến SW7), dữ  
liệu được hin thmã nhị phân trên 8 led đơn (từ LEDR0 đến LEDR7) và mã thp lc phân  
trên 2 led 7 đoạn (HEX0 và HEX1). Nhn nút cho phép truyn dliu (KEY0), mt byte  
dliu (ví d: 9C) hiện trên 2 led 7 đoạn HEX0, HEX1 struyn sang máy tính (Hình 9).  
Phn mm Advanced Serial Port Terminal snhn dliu này và hin thtrên ca sphn  
mm (Hình 10). Tương tự có thtiếp tc truyn nhiu byte dliu khác nhau vi nhiu tc  
độ baud khác nhau để kiểm tra đchính xác ca btruyn.  
182  
TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM  
Đặng Lành và tgk  
Hình 9. Bản mạch DEI  
truyền byte dữ liệu (9C) lên máy tính  
Hình 10. Máy tính nhận byte dữ liệu (9C)  
từ bản mách DEI truyền đến  
4.2. FPGA nhn dliu tmáy tính truyền đến  
Vn giSW9 mc ‘0’, tca sphn mm Advanced Serial Port Terminal  
(Hình 11), thc hin gi “send” mt byte dliu (ví d: A4) thì bn mch DE1 nhn giá trị  
này và hin thtrên hai led 7 đoạn HEX2 và HEX3 (Hình 12). Tương tự có thtiếp tc gi  
nhiu byte dliu khác nhau vi nhiu tốc độ baud khác nhau để kiểm tra đchính xác ca  
bnhn dliu. Thc nghim vi nhiu tốc độ baud khác nhau Bng 1, thc hin nhiu  
ln quá trình truyn, nhn dliu, nhm kiểm tra đhoạt động ổn định ca btruyn và bộ  
nhn, kết ququá trình truyn, nhn hoạt động tt, tuy nhiên tốc độ baud quá ln thnh  
thong xy ra li.  
Hình 11. Máy tính  
truyền byte dữ liệu (A4) lên Bản mạch DEI  
Hình 10. Bản mạch DEI nhận byte dữ liệu  
(A4) tmáy tính truyền xuống  
4.3. Sai sca btruyn, nhn dliu  
Sai sca quá trình truyn, nhận được tính [3] theo công thc (1). Da vào công  
thức này, tính được sai sca mt stốc độ baud thc nghim trình bày trong Bng 1.  
BaudRate  
Closest Match  
Error(%)   
1 100  
(1)  
BaudRate  
183  
TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM  
Tập 15, S12 (2018): 176-185  
Bng 1. Sai sca mt stốc độ baud thc nghim  
BRG  
Baud Rate  
ERROR (%)  
(Closest Match)  
Sthtự  
Baud Rate  
Float  
Integer  
325  
216  
162  
80  
1
2
9600  
324,5208  
216,0139  
161,7604  
80,3802  
54,8036  
53,2535  
26,1267  
23,4141  
12,5634  
11,2070  
5,7817  
9586  
14401  
-0,1  
0
14400  
19200  
38400  
56000  
57600  
115200  
128000  
230400  
256000  
460800  
921600  
3
19172  
-0,1  
0,5  
-0,4  
0,5  
0,5  
1,7  
-3,1  
1,7  
-3,1  
13,0  
4
38580  
5
55  
55804  
6
53  
57870  
7
26  
115741  
130208  
223214  
260417  
446429  
1041667  
8
23  
9
13  
10  
11  
12  
11  
6
2,3908  
2
Da vào bng sliu cho thy, vi tn sthch anh 50MHz (trên bn mch DE1)  
hu hết đều có sai skhi thiết kế btruyn, nhn UART. Sai schp nhận được ttốc độ  
truyền 9600bps đến 115200bps. tốc độ truyn từ 128000bps đến 921600bps thì sai số  
ln, quá trình truyn, nhn dliu các tốc độ này sxy ra li. Tốc độ truyn 14400bps  
có sai sthp nht nên quá trình truyn, nhn dliu tốc độ này là chính xác nht và  
không bli. tốc độ 921600bps có sai sln nht nên quá trình truyn, nhn xy ra li  
nhiu nht.  
5.  
Kết lun  
Bài báo đã trình bày được mch thiết kế trên FPGA ghép ni vi máy tính, phn  
cng sdng là bn mch DE1 ca Altera và phn mềm là chương trình viết bng ngôn  
ngVHDL. Kết quthiết kế thc hiện được struyn, nhn dliu gia FPGA và máy  
tính qua cng RS 232 vi sai snhỏ hơn 1% thì quá trình truyn, nhn tt nht và không  
bli. Sn phm thiết kế làm tài liu tham kho, ging dy và hc tp chuyên ngành  
điều khin tự động. Qua sn phm thiết kế giúp người thc hin nm rõ bn cht ca lp  
trình phn cứng, người hc có ththiết kế được các hthng logic s, hiểu được các  
môn hc liên quan kĩ thut số, vi điều khin, kĩ thut vi x. Đây là phương pháp dạy  
hc tích cc mi giúp sinh viên tiếp cn công nghchế to phn cng trên FPGA và  
FPGA có ththay thế mi hthng stcác IC (Intergrated Circuit) số đơn giản đến  
các bộ vi điều khin phc tp vi kì vng phát trin thiết kế phong phú và đa dạng về  
chuyên ngành tự động hóa.  
184  
TẠP CHÍ KHOA HỌC - Trường ĐHSP TPHCM  
Đặng Lành và tgk  
Tuyên bvquyn li: Cá c tá c gixá c nhận hoàn toàn không có xung đột vquyn li.  
TÀI LIU THAM KHO  
[1] Bài ging thiết kế sdùng ngôn ngmô tphn cứng VHDL, Trường Đại hc Kinh tế –  
Kĩ thut Công nghip, 2012.  
[2] Thiết kế logic s, Hc vin Kĩ thut Quân sHà Ni, 2011.  
[3] Datasheet ATmega16 – Atmel.  
[4] DE1 Development and Education Board User Manual – Altera.  
[5] Quartus II Introduction Using VHDL Design (2011) – Altera.  
[6] Volnei A. Pedroni, Circuit Design with VHDL. MIT Press Cambridge, Massachusetts  
London, England, 2004.  
185  
pdf 10 trang yennguyen 09/04/2022 8840
Bạn đang xem tài liệu "Ứ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", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfung_dung_cong_nghe_fpga_de_thiet_ke_bo_truyen_nhan_du_lieu_g.pdf