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

Thiết kế máy in hóa đơn sử dụng giao thức USART

57 670 2
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 57
Dung lượng 6,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USARTThiết kế máy in hóa đơn sử dụng giao thức USART

Trang 1

QUÁCH VĂN PHI

THIẾT KẾ MÁY IN HÓA ĐƠN SỬ DỤNG GIAO THỨC USART

Chuyên ngành: KỸ THUẬT VIỄN THÔNG

Trang 2

LỜI CAM ĐOAN

Tôi cam đoan đây là công trình nghiên cứu của riêng tôi Các kết quả nghiên cứu cũng như ý tưởng của các tác giả khác đều được trích dẫn cụ thể

Đề tài luận văn của tôi chưa từng được bảo vệ tại bất kỳ một hội đồng bảo vệ luận văn thạc sĩ nào Đồng thời cho đến nay chưa được công bố trên bất kỳ phương tiện thông tin truyền thông nào

Hà Nội, Ngày… tháng… năm…… Học viên thực hiện

QUÁCH VĂN PHI

Trang 3

LỜI CẢM ƠN

Tôi xin được bày tỏ lòng biết ơn sâu sắc nhất đến người hướng dẫn của tôi là: TS Nguyễn Ngọc Minh Người đã đã hướng dẫn, giúp đỡ tạo mọi điều kiện để tôi nghiên cứu và hoàn thành luận văn thạc sĩ

Tôi xin chân thành cảm ơn Ban giám đốc Học viện Công nghệ Bưu chính Viễn thông đã giúp tôi hoàn thành khóa học trong một năm rưỡi qua

Tôi xin chân thành cảm ơn các thầy cô trong khoa Quốc tế và Đào tạo sau đại học đã truyền đạt những kiến thức, tạo điều kiện thuận lợi để tôi được học tập, rèn luyện tốt

Tôi xin cảm ơn tập thể lớp cao học kỹ thuật viễn thông, những người thường xuyên động viên, đóng góp trao đổi ý kiến và kiến thức trong suốt thời gian học tập

và hoàn thành luận văn

Hà Nội, Ngày… tháng… năm…… Học viên thực hiện

QUÁCH VĂN PHI

Trang 4

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

DANH MỤC CHỮ VIẾT TẮT v

DANH MỤC BẢNG BIỂU vi

DANH MỤC HÌNH VẼ vii

LỜI MỞ ĐẦU 1

CHƯƠNG 1: GIỚI THIỆU CHUNG 2

1.1 Máy in hóa đơn 2

1.2 Giao tiếp truyền nhận nối tiếp USART 4

1.2.1 Giới thiệu về giao tiếp truyền nhận nối tiếp USART 4

1.2.2 Giao tiếp USART chế độ bất đồng bộ 7

1.3 Giao tiếp truyền nhận nối tiếp SPI 8

1.3.1 Giới thiệu về giao tiếp SPI 8

1.3.2 Chuẩn truyền thông SPI 9

1.3.3 Các kiểu kết nối SPI 15

1.4 Kết luận chương 18

CHƯƠNG 2: THIẾT KẾ VÀ THỰC THI PHẦN CỨNG 19

2.1 Vi điều khiển 20

2.2 Module đầu in 21

2.3 Bộ nhớ 24

2.4 Mạch nguồn 25

2.5 Sơ đồ nguyên lý của các khối phần cứng 27

2.6 Kết luận chương 30

CHƯƠNG 3: THIẾT KẾ VÀ THỰC THI PHẦN MỀM 31

3.1 Yêu cầu thiết kế 31

3.2 Phần mềm cho thiết bị 31

3.3 Các lệnh cấu hình máy in và điều khiển quá trình in 34

Trang 5

3.4 Giải thuật in dữ liệu văn bản và ảnh lô gô 35

3.5 Thiết kế giao thức truyền nhận dữ liệu ảnh lô gô giữa phần mềm nạp ảnh và máy in 37

3.5.1 Bản tin truyền từ máy tính 38

3.5.2 Bản tin truyền từ máy in 40

3.6 Thiết kế phần mềm nạp ảnh cho máy in 41

3.7 Kết luận chương 43

CHƯƠNG 4: KẾT QUẢ VÀ THẢO LUẬN 44

4.1 Các kết quả đã đạt được 44

4.1.2 Phần cứng 44

4.1.3 Phần mềm 44

4.2 Các vấn đề cần cải tiến của máy in 44

4.3 Hình ảnh sản phẩm 45

KẾT LUẬN VÀ KIẾN NGHỊ 47

TÀI LIỆU THAM KHẢO 48

Trang 6

DANH MỤC CHỮ VIẾT TẮT

LED Light Emitting Diode Đi ốt phát quang

MISO Master Input Slave Output Đầu vào chíp chủ động đầu ra chíp

thụ động

MOSI Master Output Slave Input Đầu ra chíp chủ động đầu vào chíp

thụ động

SPI Serial Peripheral Interface Giao diện ngoại vi nối tiếp

USART

Universal Synchronous/Asynchronous Receiver/Transmitter

Bộ truyền nhận nối tiếp đồng bộ và bất đồng bộ

Trang 7

DANH MỤC BẢNG BIỂU

Bảng 1.1: Các tín hiệu của giao tiếp SPI 11

Bảng 1.2: Các chế độ truyền thông trong giao tiếp SPI 13

Bảng 2.1: Một số đặc tính của module đầu in 22

Bảng 2.2: Bảng trạng thái của IC BA6845FS 23

Bảng 2.3: Bảng trạng thái điều khiển động cơ bước 24

Bảng 2.4: Lệnh điều khiển chíp nhớ S25FL216K 25

Bảng 3.1: Trạng thái bật tắt đèn LED của máy in 34

Bảng 3.2: Các lệnh cấu hình và kiểm tra hoạt động của máy in 34

Bảng 3.3: Các lệnh điều khiển quá trình in 35

Bảng 3.4: Bản tin tổng quát 37

Bảng 3.5: Mã bản tin truyền từ máy tính 38

Bảng 3.6: Nội dung bản tin yêu cầu nạp ảnh 38

Bảng 3.7: Nội dung bản tin dữ liệu ảnh 39

Bảng 3.8: Mã bản tin truyền từ máy in 40

Bảng 3.9: Nội dung bản tin phản hồi dữ liệu ảnh 40

Trang 8

DANH MỤC HÌNH VẼ

Hình 1.1: Truyền 8 bit theo phương pháp song song và nối tiếp 5

Hình 1.2: Giao tiếp USART chế độ đồng bộ 6

Hình 1.3: Giao tiếp USART chế độ bất đồng bộ 6

Hình 1.4: Khung truyền dữ liệu trong chế độ bất đồng bộ 7

Hình 1.5: Ví dụ một khung truyền dữ liệu trong chế độ bất đồng bộ 8

Hình 1.6: Giao tiếp SPI 10

Hình 1.7: Truyền dữ liệu SPI 11

Hình 1.8: Giản đồ thời gian của giao tiếp SPI 12

Hình 1.9: Giản đồ thời gian của SPI ở chế độ 0 14

Hình 1.10: Giản đồ thời gian của SPI ở chế độ 1 14

Hình 1.11: Giản đồ thời gian của SPI ở chế độ 2 14

Hình 1.12: Giản đồ thời gian của SPI ở chế độ 3 15

Hình 1.13: Kết nối điểm - điểm một Master nối với một Slave 15

Hình 1.14: Kết nối nhiều Slave song song 16

Hình 1.15: Kết nối nối tiếp 17

Hình 1.16: Kết nối hai Master song song đến một Slave 17

Hình 1.17: Kết nối hai Master với nhau 18

Hình 2.1: Sơ đồ khối phần cứng 19

Hình 2.2: Vi điều khiển STM32F303CBT6 20

Hình 2.3: Sơ đồ khối dòng vi điều khiển STM32F3 20

Hình 2.4: Module đầu in 21

Hình 2.5: Sơ đồ chân kết nối module đầu in 22

Hình 2.6: Sơ chân kết nối BA6845FS 23

Hình 2.7: Sơ đồ chân kết nối chíp nhớ S25FL216K 25

Hình 2.8: Sơ đồ mạch cấp nguồn cho đầu in 26

Hình 2.9: Sơ đồ mạch cấp nguồn cho vi điều khiển và chíp nhớ 26

Hình 2.10: Sơ đồ nguyên lý khối vi điều khiển 27

Hình 2.11: Sơ đồ nguyên lý khối đầu in 28

Trang 9

Hình 2.12: Sơ đồ nguyên lý khối điều khiển động cơ của đầu in 28

Hình 2.13: Sơ đồ nguyên lý khối bộ nhớ 29

Hình 2.14: Sơ đồ nguyên lý khối nút bấm và đèn LED 29

Hình 2.15: Sơ đồ nguyên lý khối nguồn 29

Hình 3.1: Hoạt động của phần mềm máy in 32

Hình 3.2: Quá trình khởi động máy in 32

Hình 3.3: Các tác vụ thực hiện theo chu kỳ và theo sự kiện 33

Hình 3.4: Quá trình nạp ảnh từ máy tính 33

Hình 3.5: Quá trình in dữ liệu lên giấy in 35

Hình 3.6: Chuyển đổi ký tự thành ma trận các bit 0 và 1 36

Hình 3.7: Chuyển đổi ma trận điểm ảnh thành mảng các số 8 bit 36

Hình 3.8: Mô tả hoạt động của phần mềm nạp ảnh cho máy in 41

Hình 3.9: Quá trình nạp ảnh cho máy in từ phần mềm nạp ảnh 42

Hình 4.1: Phần cứng máy in hóa đơn 45

Hình 4.2: In hóa đơn thanh toán 45

Hình 4.3: Giao diện phần mềm nạp ảnh cho máy in 46

Trang 10

Trong những năm gần đây ngành điện tử ở nước ta đang phát triển rất nhanh Việc tiếp cận với những kiến thức, công nghệ hiện đại rất dễ dàng cho mọi người học tập và nghiên cứu Trong lĩnh vực điện tử có nhiều giao thức được phát triển và ứng dụng trong truyền nhận dữ liệu giữa các module, giữa IC và vi điều khiển, giữa thiết bị điện tử và máy tính,…như USART, SPI, I2C,… Trong đó USART được ứng dụng nhiều trong giao tiếp giữa các thiết bị điện tử với nhau, giao tiếp giữa thiết bị điện tử với máy tính, với những ưu điểm như thiết lập kết nối đơn giản, sử dụng ít đường kết nối vật lý

Từ các vấn đề trên em lựa chọn đề tài nghiên cứu “Thiết kế máy in hóa đơn

sử dụng giao thức USART” nhằm thiết kế một máy in hóa đơn sử dụng giao tiếp USART với những tính năng cơ bản và chất lượng tốt

Trong luận văn này sẽ nghiên cứu và thiết kế máy in hóa đơn sử dụng giao tiếp USART với 4 chương như sau:

Chương 1: Giới thiệu chung

Chương 2: Thiết kế và thực thi phần cứng

Chương 3: Thiết kế và thực thi phần mềm

Chương 4: Kết quả và thảo luận

Trang 11

CHƯƠNG 1: GIỚI THIỆU CHUNG

1.1 Máy in hóa đơn

Máy in hoá đơn là thiết bị có chức năng in hoá đơn ra giấy, để in ra danh sách hàng hóa, giá cả, nội dung cần thanh toán Có thể in và cắt giấy một cách nhanh chóng để giao cho khách hàng Chính vì thế máy in hóa đơn đã trở thành một thiết bị không thể thiếu trong các đại lý, nhà phân phối, các siêu thị, kho hàng, các cửa hàng bán lẻ

Dựa vào công nghệ in, máy in hóa đơn được chia làm hai loại là máy in kim

và máy in nhiệt

Máy in kim sử dụng ma trận kim in khắc chữ viết, hình ảnh lên giấy thông qua một băng mực Ưu điểm của máy in kim là hóa đơn in ra sẽ đảm bảo chất lượng, khó bị hư hỏng và không bị bay mực nên có thể lưu giữ lâu dài Nhược điểm của công nghệ này là dùng mực in nên tốc độ in chậm và thường xuyên phải thao tác thay mực, thay giấy cho máy in

Máy in nhiệt sử dụng đầu in nhiệt tác dụng lên giấy in nhiệt, khi đầu in nhiệt của máy in nhiệt nóng lên sẽ làm nóng lớp hóa chất trên giấy in nhiệt và hiển thị những chữ viết, hình ảnh Máy in nhiệt không dùng mực in bởi trong giấy in nhiệt

đã có thành phần hợp chất để khi đầu in tác động nhiệt sẽ in ra chữ Ưu điểm của máy in nhiệt là tốc độ in nhanh, chính xác, không cần thay băng mực cho máy in Nhược điểm của máy in nhiệt là hóa đơn in ra dễ bị xước, bị hỏng vì lớp hóa chất trên giấy rất dễ bắt nhiệt nên khó lưu giữ lâu dài

Trong lĩnh vực điện tử hiện nay có nhiều chuẩn giao tiếp được phát triển và ứng dụng trong truyền nhận dữ liệu giữa các module, giữa IC và vi điều khiển, giữa thiết bị điện tử và máy tính,… Có nhiều chuẩn giao tiếp như USART, SPI, I2C, USB,… Trong đó USART được ứng dụng nhiều trong giao tiếp giữa các thiết bị điện tử với nhau, giao tiếp giữa thiết bị điện tử với máy tính, với những ưu điểm như thiết lập kết nối đơn giản, sử dụng ít đường kết nối vật lý, tốc độ truyền dữ liệu

ở mức trung bình Chuẩn giao tiếp SPI được ứng dụng nhiều trong giao tiếp giữa

Trang 12

các vi điều khiển, giữa vi điều khiển với IC hoặc với các module, chuẩn giao tiếp SPI có tốc độ khá cao

Chức năng chính của máy in hóa đơn là giao tiếp với thiết bị tính tiền để nhận dữ liệu cần in và điều khiển đầu in để xuất dữ liệu đó ra giấy Vì vậy để thiết

kế được máy in hóa đơn thì cần phải lựa chọn loại đầu in và chuẩn giao tiếp để truyền nhận dữ liệu giữa máy in và thiết bị tính tiền

 Các phương án lựa chọn module đầu in

Để thiết kế máy in hóa đơn ta có thể lựa chọn sử dụng module đầu in nhiệt hoặc module đầu in kim Sử dụng module đầu in kim thì chất lượng hóa đơn in ra sẽ tốt hơn, lưu giữ được lâu hơn tuy nhiên kích thước đầu in lớn, giá thành cao, tốc độ

in chậm, phải thay mực và thay giấy thường xuyên Sử dụng module đầu in nhiệt thì chất lượng hóa đơn kém hơn, dễ bị tác động bởi nhiệt nhưng kích thước nhỏ gọn, giá thành thấp hơn module đầu in kim, tốc độ in nhanh hơn, chỉ cần thay giấy in khi hết Hiện nay trên thị trường có nhiều hãng cung cấp module đầu in như hãng Seiko cũng cấp một số loại module như LTP01-245, LTP02-245, LTPJ245D, LTP04 Hãng Fujitsu cũng cấp một số loại module như FTP-627USL401, FTP-627USL431, FTP-627USL432 Các loại module này sử dụng chuẩn giao tiếp SPI

Từ những ưu điểm của loại module đầu in nhiệt, trong đề tài này tác giả lựa chọn sử dụng module đầu in nhiệt để thiết kế máy in hóa đơn

 Các phương án lựa chọn chuẩn giao tiếp giữa máy in và thiết bị tính tiền Hiện nay có nhiều chuẩn giao tiếp có thể ứng dụng để truyền nhận giữa máy

in và thiết bị tính tiền như USB, USART, SPI, Ngoài ra cũng có thể truyền nhận

dữ liệu giữa máy in và thiết bị tính tiền thông qua bluetooth, qua mạng lan, qua mạng wifi,… Ngoài việc truyền nhận dữ liệu giữa máy in và thiết bị tính tiền, máy

in cần phải dễ dàng kết nối với máy vi tính để thực hiện cấu hình và nạp ảnh lô gô

và thiết bị tính tiền ở đây cũng có thể là máy tính Giao tiếp SPI khó kết nối với máy tính Giao tiếp USB có tốc độ khá cao nhưng khó kết nối với nhiều loại thiết bị tính tiền sử dụng vi điều khiển đời cũ không hỗ trợ kết nối USB Truyền nhận thông qua bluetooth, mạng lan, wifi có ưu điểm về khoảng cách kết nối xa nhưng không

Trang 13

phù hợp với những thiết bị tính tiền ở những nơi không có mạng lan, wifi, bluetooth như đồng hồ tính cước trên xe taxi, xe bus,… Chuẩn giao tiếp USART kết nối đơn giản, có thể kết nối chỉ với hai đường dây, dễ dàng kết nối với nhiều loại thiết bị tính tiền và máy tính Được tích hợp trên nhiều dòng vi điều khiển, vi xử lý đời cũ

và đời mới dó đó những thiết bị tính tiền chưa hỗ trợ cũng có thể dễ dàng bổ sung kết nối Trong luận văn này tác giả sẽ sử dụng giao tiếp USART để kết nối giữa máy in và thiết bị tính tiền, kết nối giữa máy in và máy tính

Với những ưu điểm của loại máy in hóa đơn nhiệt và chuẩn giao tiếp USART, trong đề tài này tác giả lựa chọn thiết kế một máy in hóa đơn nhiệt với các tính năng cơ bản sau:

- In dữ liệu hóa đơn nhận được thông qua giao tiếp USART từ thiết bị tính tiền

- Lưu 3 ảnh lô gô trong bộ nhớ flash phục vụ quá trình in

- In ảnh lô gô của đơn vị kinh doanh trên hóa đơn

- Nạp ảnh lô gô vào IC nhớ thông qua phần mềm trên máy tính

- Thông báo trạng thái hoạt động của máy in thông qua đèn LED

- Đẩy giấy và in lại hóa đơn đã in trước đó thông qua nút bấm

- Lưu trữ các tham số cấu hình hoạt động của máy in vào bộ nhớ, có thể cấu hình các tham số hoạt động từ phần mềm trên máy tính

Để đáp ứng được các tính năng truyền nhận dữ liệu qua giao tiếp USART và điều khiển đầu in sử dụng giao tiếp SPI cần hiểu và nắm rõ hai giao tiếp này để sử dụng trong quá trình thiết kế và lập trình điều khiển máy in Phần tiếp theo sẽ trình bày rõ hơn về hai loại giao tiếp này

1.2 Giao tiếp truyền nhận nối tiếp USART

1.2.1 Giới thiệu về giao tiếp truyền nhận nối tiếp USART

Thuật ngữ USART trong tiếng anh là viết tắt của cụm từ: Universal Synchronous/Asynchronous Reveiver/Transmitter, nghĩa là truyền nhận đồng bộ và bất đồng bộ USART là một giao diện truyền thông nối tiếp được tích hợp trong

Trang 14

máy tính và nhiều dòng vi điều khiển hỗ trợ giao tiếp nối tiếp đồng bộ và bất đồng

bộ

Truyền thông nối tiếp: Giả sử ta đang xây dựng một ứng dụng phức tạp cần

sử dụng nhiều vi điều khiển kết nối với nhau Trong quá trình làm việc các vi điều khiển cần trao đổi dữ liệu cho nhau, ví dụ tình huống vi điều khiển 1 truyền/nhận dữ liệu với vi điều khiển 2 Giả sử dữ liệu cần trao đổi là các mã có chiều dài 8 bit, ta

có thể sẽ nghĩ đến cách kết nối đơn giản nhất là kết nối 1 cổng (8 bit) của mỗi vi điều khiển với nhau, mỗi đường kết nối trên cổng sẽ chịu trách nhiệm truyền/nhận 1 bit dữ liệu Đây gọi là cách giao tiếp song song, cách này là cách đơn giản nhất vì

dữ liệu được xuất và nhận trực tiếp không thông qua bất kỳ một giải thuật biến đổi nào và vì thế tốc độ truyền cũng rất nhanh Tuy nhiên có thể thấy nhược điểm của cách truyền này là số đường truyền quá nhiều, ta hãy tưởng tượng nếu dữ liệu có giá trị càng lớn thì số đường truyền cũng sẽ nhiều thêm Hệ thống truyền thông song song thường rất cồng kềnh và vì thế kém hiệu quả Truyền thông nối tiếp sẽ giải quyết vần đề này Trong tuyền thông nối tiếp dữ liệu được truyền từng bit trên một (hoặc một vài) đường truyền Vì lý do này cho dù dữ liệu có lớn đến đâu cũng chỉ dùng rất ít đường truyền Hình 1.1 mô tả sự so sánh giữa 2 cách truyền song song và nối tiếp trong việc truyền con số 187 thập phân (tức 10111011 nhị phân)

Hình 1.1: Truyền 8 bit theo phương pháp song song và nối tiếp

Một hạn chế rất dễ nhận thấy khi truyền nối tiếp so với song song là tốc độ truyền và độ chính xác của dữ liệu khi truyền và nhận Vì dữ liệu cần được chia nhỏ thành từng bit khi truyền/nhận, tốc độ truyền sẽ bị giảm Mặt khác, để đảm bảo tính chính xác của dữ liệu, bộ truyền và bộ nhận cần có những thỏa hiệp hay những tiêu chuẩn nhất định

Trang 15

Khái niệm đồng bộ để chỉ sự báo trước trong quá trình truyền Hai thiết bị kết nối với nhau bởi 2 đường, một đường dữ liệu và 1 đường xung nhịp Đường xung nhịp được kiểm soát bởi một thiết bị, tất cả các bit được truyền đồng bộ với xung nhịp đó [2] Cứ mỗi lần thiết bị 1 muốn gửi 1 bit dữ liệu, thiết bị 1 điều khiển đường xung nhịp chuyển từ mức thấp lên mức cao báo cho thiết bị 2 sẵn sàng nhận một bit Bằng cách báo trước này tất cả các bit dữ liệu có thể truyền/nhận dễ dàng với ít rủi ro trong quá trình truyền Tuy nhiên cách truyền này đòi hỏi ít nhất 2 đường truyền cho 1 quá trình (gửi dữ liệu hoặc nhận dữ liệu)

Hình 1.2: Giao tiếp USART chế độ đồng bộ

Khác với cách truyền đồng bộ, truyền thông bất đồng bộ chỉ cần một đường truyền cho một quá trình (gửi dữ liệu hoặc nhận dữ liệu) Các tham số truyền nhận, khung dữ liệu đã được chuẩn hóa bởi các thiết bị nên không cần đường xung nhịp báo trước dữ liệu đến [2] Ví dụ 2 thiết bị đang giao tiếp với nhau theo phương pháp này, chúng đã được thỏa thuận với nhau rằng cứ 1ms thì sẽ có 1 bit dữ liệu truyền đến, như thế thiết bị nhận chỉ cần kiểm tra và đọc đường truyền mỗi mili giây để đọc các bit dữ liệu và sau đó kết hợp chúng lại thành dữ liệu có ý nghĩa Truyền thông nối tiếp bất đồng bộ vì thế hiệu quả hơn truyền thông đồng bộ (không cần nhiều đường truyền)

Hình 1.3: Giao tiếp USART chế độ bất đồng bộ

Từ những ưu điểm truyền nhận đơn giản, sử dụng ít đường kết nối của truyền thông bất đồng bộ, trong luận văn này tác giả lựa chọn và ứng dụng chế độ truyền

Trang 16

thông bất đồng bộ để truyền nhận dữ liệu giữa máy in hóa đơn và các thiết bị tính tiền Trong phần tiếp theo tác giả sẽ trình bày chi tiết hơn về chế độ truyền nhận bất đồng bộ

1.2.2 Giao tiếp USART chế độ bất đồng bộ

Trong chế độ truyền nhận nối tiếp bất đồng bộ này chỉ sử dụng một dây kết nối cho mỗi chiều truyền dữ liệu do đó để quá trình truyền nhận dữ liệu thành công thì việc tuân thủ các tiêu chuẩn truyền là hết sức quan trọng Sau đây là các khái niệm quan trọng trong chế độ truyền thông này

Baud rate (tốc độ Baud): Để việc truyền và nhận bất đồng bộ xảy ra thành công thì các thiết bị tham gia phải thống nhất với nhau về khoảng thời gian dành cho 1 bit truyền, hay nói cách khác tốc độ truyền phải được cài đặt như nhau trước khi truyền nhận, tốc độ này gọi là tốc độ Baud Tốc độ Baud là số bit truyền trong một giây Ví dụ nếu tốc độ Baud được đặt là 19200 bit/giây thì thời gian dành cho một bit truyền là 1/19200 ~ 52.083us

Frame (khung truyền): Do truyền thông nối tiếp mà nhất là nối tiếp bất đồng

bộ rất dễ mất hoặc sai lệch dữ liệu, quá trình truyền thông theo kiểu này phải tuân theo một số quy cách nhất định Bên cạnh tốc độ Baud, khung truyền là một yếu tố quan trọng tạo nên sự thành công khi truyền và nhận Khung truyền bao gồm các quy định về số bit trong mỗi lần truyền, các bit báo hiệu như bit Start và bit Stop, các bit kiểm tra như Parity, ngoài ra số lượng các bit dữ liệu trong mỗi lần truyền cũng được quy định bởi khung truyền

Hình 1.4: Khung truyền dữ liệu trong chế độ bất đồng bộ

Start bit: Là bit đầu tiên được truyền trong một khung truyền, bit này có chức

năng báo cho thiết bị nhận biết rằng có một gói dữ liệu sắp được truyền tới Start bit

là bit bắt buộc phải có trong khung truyền

Trang 17

Data: Data hay dữ liệu cần truyền là thông tin chính mà chúng ta cần gửi và nhận Dữ liệu cần truyền không nhất thiết phải là gói 8 bit, có thể quy định số lượng bit của dữ liệu là 5, 6, 7, 8 hoặc 9 Trong truyền thông nối tiếp USART, bit có ảnh hưởng nhỏ nhất của dữ liệu sẽ được truyền trước và cuối cùng là bit có ảnh hưởng lớn nhất

Parity bit: Là bit dùng kiểm tra dữ liệu truyền đúng không (một cách tương

đối) Có 2 loại parity là parity chẵn và parity lẻ Parity chẵn nghĩa là số lượng bit 1 trong dữ liệu bao gồm bit parity luôn là số chẵn Ngược lại tổng số lượng các bit 1 trong parity lẻ luôn là số lẻ Ví dụ, nếu dữ liệu của bạn là 10111011 nhị phân, có tất

cả 6 bit 1 trong dữ liệu này, nếu parity chẵn được dùng, bit parity sẽ mang giá trị 0

để đảm bảo tổng các bit 1 là số chẵn (6 bit 1) Nếu parity lẻ được yêu cầu thì giá trị của parity bit là 1 Parity bit không phải là bit bắt buộc và vì thế chúng ta có thể loại bit này khỏi khung truyền

Stop bits: Là một hoặc các bit báo cho thiết bị nhận rằng một gói dữ liệu đã được gửi xong Sau khi nhận được stop bits, thiết bị nhận sẽ tiến hành kiểm tra khung truyền để đảm bảo tính chính xác của dữ liệu Stop bits là các bit bắt buộc xuất hiện trong khung truyền

Hình 1.5: Ví dụ một khung truyền dữ liệu trong chế độ bất đồng bộ

Hình 1.5 là một ví dụ của một khung truyền theo USART chế độ bất đồng

bộ, khung truyền này được bắt đầu bằng một start bit, tiếp theo là 8 bit dữ liệu cuối cùng là 1 bit stop

1.3 Giao tiếp truyền nhận nối tiếp SPI

1.3.1 Giới thiệu về giao tiếp SPI

SPI (Serial Peripheral Interface – Giao diện ngoại vi nối tiếp) là một chuẩn đồng bộ nối tiếp để truyền dữ liệu ở chế độ song công toàn phần (Full-duplex), do

Trang 18

công ty Motorola thiết kế nhắm đảm bảo sự liên hợp giữa các vi điều khiền và thiết

bị ngoại vi một cách đơn giản SPI là giao diện đồng bộ, trong đó bất cứ quá trình truyền nào cũng được đồng bộ hóa với tín hiệu xung nhịp chung, tín hiệu này sinh

ra bởi thiết bị chủ động (Master) Thiết bị ngoại vi bên phía nhận (Slave) đồng bộ quá trình nhận chuỗi bit với tín hiệu xung nhịp [11]

Đây là kiểu truyền thông trong đó có 1 chip Master điều phối quá trình truyền thông và các chip Slave được điều khiển bởi Master

SPI cung cấp một giao diện nối tiếp đơn giản giữa vi xử lý và thiết bị ngoại

vi Chuẩn giao tiếp SPI ngày càng được sử dụng rộng rãi trong lĩnh vực điện tử, đặc biệt là trong giao tiếp trao đổi dữ liệu với các thiết bị ngoại vi

Giao diện SPI được sử dụng tích hợp trong một số loại thiết bị như:

- Các bộ chuyển đổi tương tự sang số, số sang tương tự

- Các loại bộ nhớ (EEPROM và FLASH)

- Các loại IC thời gian thực

- Các loại cảm biến (nhiệt độ, áp suất )

1.3.2 Chuẩn truyền thông SPI

1.3.2.1 Cấu trúc SPI

Giao diện SPI được thực hiện thông qua Bus 4 dây MISO, MOSI, SCK và

SS nên đôi khi SPI còn được gọi là giao diện 4 dây

MISO – Master Input Slave Output

Chân MISO dùng để truyền dữ liệu đi khi đặt cấu hình là Slave và nhận dữ liệu về khi đặt cấu hình là Master MISO của Master và các Slave được nối trực tiếp với nhau

MOSI – Master Output Slave Input

Chân MOSI dùng để truyền dữ liệu đi khi đặt cấu hình là Master và nhận dữ liệu về khi đặt cấu hình là Slave MISO của Master và các Slave được nối trực tiếp với nhau

Trang 19

Chỉ có một đường SS trên mỗi Slave nhưng có thể có nhiều đường điều khiển trên Master tùy thuộc vào thiết kế của người dùng

Hình 1.6: Giao tiếp SPI

Trang 20

Có thể mô tả tóm tắt các tín hiệu của giao tiếp SPI bằng bảng sau:

Bảng 1.1 : Các tín hiệu của giao tiếp SPI

Slave: Đầu vào

Xung nhịp đồng bộ truyền/nhận dữ liệu luôn được cung cấp bởi Master

Slave: Đầu vào

Tín hiệu kết nối với Slave Master kích hoạt tín hiệu này nếu muốn truyền/nhận dữ liệu với Slave

Master: MOSI

Slave: SDO hoặc SO Đầu ra Đầu ra dữ liệu nối tiếp

Master: MISO

Slave: SDI hoặc SI Đầu vào Đầu vào dữ liệu nối tiếp

1.3.2.2 Truyền thông SPI

 Mô tả cơ chế

Hình dưới đây mô tả quá trình truyền một gói dữ liệu thực hiện bởi module SPI, bên trái là chip Master và bên phải là Slave

Hình 1.7: Truyền dữ liệu SPI

 Giản đồ thời gian của giao tiếp SPI

Khi Master muốn truyền/nhận dữ liệu, nó kéo tín hiệu chọn chip SS xuống mức thấp Sau đó Master cung cấp xung nhịp đồng bộ việc truyền/nhận dữ liệu trên đường SCK

Vị trí lấy mẫu dữ liệu và dịch dữ liệu theo xung SCK phụ thuộc vào hai

Trang 21

thông số cấu hình được quy định bởi chuẩn SPI là pha của xung nhịp (CPHS – Clock Phase) và cực của xung nhịp (CPOL – Clock Polarity)

Hình 1.8: Giản đồ thời gian của giao tiếp SPI

Cực của xung nhịp quyết định trạng thái rảnh của tín hiệu SCK Nếu CPOL

= 0 thì mức logic khi ở trạng thái rảnh của SCK là mức thấp Nếu CPOL = 1 thì ngược lại

Dựa vào pha của xung nhịp chúng ta sẽ biết lấy điểm mẫu ở đâu:

- Nếu pha của xung nhịp bằng 0 thì dữ liệu được lấy mẫu khi SCK chuyển từ trạng thái rảnh sang trạng thái hoạt động, có thể là cạnh lên hoặc cạnh xuống tùy vào giá trị CPOL

- Nếu pha của xung nhịp bằng 1 thì dữ liệu được lấy mẫu khi SCK chuyển từ trạng thái hoạt động sang trạng thái rảnh

1.3.2.3 SPI là giao tiếp đồng bộ

Module SPI cho phép giao tiếp nối tiếp đồng bộ kép giữa vi xử lý với thiết bị ngoại vi:

- Tín hiệu SCK được cung cấp bởi Master nhằm tạo xung đồng bộ cho phép

dữ liệu được truyền đi hoặc khi đọc dữ liệu nhận được

- Khi tín hiệu SCK được phát ra thì tín hiệu này có thể thay đổi nhưng không làm hỏng dữ liệu Lí do là trong giao tiếp SPI, tốc độ của dữ liệu truyền đi sẽ thay đổi theo sự thay đổi của SCK Điều này rất có lợi nếu như vi xử lý bị cấp xung nhịp không chính xác

Trang 22

1.3.2.4 SPI là giao tiếp trao đổi dữ liệu

Dữ liệu lúc nào cũng được truyền qua lại giữa các thiết bị SPI Không có khái niệm thiết bị phát hay thiết bị nhận trong giao tiếp SPI mà mỗi thiết bị có 2 đường dữ liệu, một đường dữ liệu vào và một đường dữ liệu ra Dữ liệu truyền đi được điều khiển bởi xung SCK từ Master

Khi được truyền đi, dữ liệu vào cần phải được đọc ngay nếu không sẽ bị mất

đi và khi đó giao tiếp SPI có thể sẽ ngưng hoạt động Để tránh tình trạng này, lúc nào ta cũng phải đọc dữ liệu về ngay sau khi truyền đi cho dù dữ liệu đó không thực

sự cần thiết

Thường thì một tín hiệu chọn Slave sẽ tác động mức thấp để chỉ ra Slave nào được truy cập Tín hiệu này phải được sử dụng khi có nhiều hơn một Slave trong cùng hệ thống và thường không sử dụng đến khi trong mạch chỉ có một Slave Tuy nhiên, theo nguyên tắc thì ta nên sử dụng tín hiệu này trong cả hai trường hợp trên

Tín hiệu SS sẽ chỉ ra Slave nào mà Master muốn bắt đầu một quá trình trao đổi dữ liệu bằng giao tiếp SPI giữa thiết bị Slave đó và chính nó Nếu tín hiệu trên đường SS là mức thấp thì chứng tỏ giao tiếp SPI đang hoạt động Ngược lại là mức cao thì giao tiếp SPI sẽ không hoạt động

SPI có 4 chế độ hoạt động, phụ thuộc vào cực tính và pha của xung nhịp Trong trường hợp cực âm của xung nhịp, tín hiệu SCK sẽ ở mức thấp trong quá trình nghỉ và chuyển sang mức cao trong quá trình truyền dữ liệu Ngược lại, đối với trường hợp cực dương của xung nhịp, tín hiệu SCK ở mức cao trong quá trình nghỉ và chuyển sang mức thấp khi truyền dữ liệu:

Bảng 1 2: Các chế độ truyền thông trong giao tiếp SPI

Trang 24

 SPI chế độ 3

Mô tả: Xung âm, dữ liệu được lấy mẫu tại sườn lên của xung nhịp

Giản đồ thời gian:

Hình 1.12: Giản đồ thời gian của SPI ở chế độ 3

1.3.3 Các kiểu kết nối SPI

1.3.3.1 Kết nối điểm - điểm

Đây là kiểu kết nối cơ bản nhất của giao tiếp SPI là một Master kết nối với một Slave

SPI Master

SS

MOSI MISO

SCLK

SPI Slave

SS

MOSI MISO SCLK

Hình 1.13: Kết nối điểm - điểm một Master nối với một Slave

Cả Master và Slave đều có thanh ghi dịch nối tiếp (thanh ghi dữ liệu 8 bit) ở bên trong Thiết bị Master bắt đầu việc trao đổi dữ liệu bằng cách truyền đi một bit vào thanh ghi dịch của nó, sau đó bit dữ liệu sẽ được đưa sang Slave theo đường tín hiệu MOSI (SDI), Slave sẽ truyền dữ liệu nằm trong thanh ghi dịch của chính nó ngược trở về Master thông qua đường tín hiệu MISO (SDO) Bằng cách này, dữ liệu của hai thanh ghi sẽ được trao đổi với nhau Việc đọc và ghi dữ liệu vào Slave diễn

ra cùng một lúc nên tốc độ trao đổi dữ liệu diễn ra rất nhanh Do đó, giao tiếp SPI là một giao tiếp rất có hiệu quả

Trong kiểu kết nối này, chỉ có thiết bị Master mới có thể điều khiển (phát ra) xung SCK Dữ liệu sẽ không được truyền đi nếu như Master không cung cấp xung

Trang 25

SCK và tất cả các thiết bị Slave đều được điều khiển bởi xung nhịp phát ra từ Master trong khi đó, Slave lại không có khả năng phát xung

1.3.3.2 Kết nối nhiều Slave

 Kết nối song song

Trong cách kết nối này, tín hiệu SCK và SDO từ Master được cung cấp đến từng Slave Đường tín hiệu SDO của các Slave nối chung lại với nhau và truyền về Master Lúc này Master sẽ lựa chọn Slave nào để trao đổi dữ liệu thông qua các chân SS riêng lẻ

Hình 1.14: Kết nối nhiều Slave song song

 Kết nối nối tiếp

Trong kết nối này, chân SS và SCK của Master nối song song đến tất cả các Slave Chân SDO của Slave trước nối đến SDI của Slave sau Chân MOSI của Master nối đến SDI của Slave đầu tiên trong chuỗi và MISO được nối đến SDO của Slave cuối cùng trong chuỗi

Việc truyền dữ liệu từ Master đến các Slave và dữ liệu Master nhận từ Slave cuối cùng được minh họa trong hình 1.15

Trang 26

Hình 1.15: Kết nối nối tiếp

1.3.3.3 Kết nối nhiều Master

Đối với kiểu kết nối này có nhiều cách kết nối và nhiều vấn đề hơn

 Kết nối nhiều Master song song đến một Slave

Với cách kết nối này, phần cứng ngoại vi phải hỗ trợ thêm các tín hiệu điều khiển khác để tránh xung đột khi hai Master cùng truy xuất đến Slave Ví dụ kết nối

nhiều Master song song đến một Slave như trong hình 1.16:

Hình 1.16: Kết nối hai Master song song đến một Slave

Giải pháp ở đây là ngoài các tín hiệu SPI thông thường, phần cứng của hai Master SPI hỗ trợ thêm tín hiệu CS_IN để Master này biết Master kia có đang chọn

Trang 27

Slave hay không Đồng thời tín hiệu SS nối đến Slave được mắc qua một cổng XNOR để nếu hai Master cùng chọn thì tín hiệu SS của Slave vẫn không tích cực Bên cạnh đó, trong mạch trên, ngoài txd (chính là tín hiệu MOSI) thì đường SCK cũng phải thả nổi khi Master không chọn Slave

 Kết nối hai Master với nhau

Đây là một dạng khác của multi Master Trong đó hai Master nối trực tiếp với nhau, giao tiếp qua 5 đường

Hình 1.17: Kết nối hai Master với nhau

Chương tiếp theo sẽ trình bày về thiết kế phần cứng cho máy in hóa đơn

Trang 28

CHƯƠNG 2: THIẾT KẾ VÀ THỰC THI PHẦN CỨNG

Sơ đồ khối phần cứng máy in bao gồm các khối sau:

Hình 2.1: Sơ đồ khối phần cứng

Phần cứng máy in hóa đơn bao gồm đầu in, vi điều khiển, bộ nhớ, nút bấm, đèn LED, khối nguồn Chức năng mỗi khối:

- Khối nguồn: Có chức năng cung cấp nguồn cho thiết bị

- Vi điều khiển: Là bộ xử lý trung tâm điều khiển mọi hoạt động của máy in, điều khiển đầu in thực hiện in hóa đơn, giao tiếp với bộ nhớ để lưu dữ liệu, giao tiếp với thiết bị tính tiền để nhận dữ liệu hóa đơn cần in

- Bộ nhớ: Là một IC nhớ có chức năng lưu dữ liệu

- Đầu in: Có chức năng thực hiện việc in hóa đơn dưới sự điều khiển của vi điều khiển

- Nút bấm và đèn LED: Gồm có 1 nút bấm và 1 đèn LED hiển thị Có chức năng điều khiển và thông báo trạng thái hoạt động của máy in

- Cổng kết nối với thiết bị tính tiền, máy tính: Gồm có 3 dây (Dây đất, dây

Ngày đăng: 02/12/2016, 03:37

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Ngọc Minh, Nguyễn Kiêm Thanh (2010), Bài giảng hệ thống nhúng, Học viện công nghệ bưu chính viễn thông, Hà Nội.Tiếng Anh Khác
[2] Jan Axelson (2007), Serial Port Complete Khác
[3] Future Technology Devices International Ltd (2009), Technical Note TN_111 What is a UART Khác
[4] Seiko Instruments Incorporated (2014), LTP01-245-11/12/18 Thermal printer mechanism technical reference Khác
[5] Spansion (2013), S25FL256K Datasheet Khác
[6] Spansion (2013), S25FL256K Application Note Khác
[7] ST Microelectronic (2015), STM32F303 DataSheet Khác
[8] ST Microelectronic (2015), STM32F303xx Reference manual Khác
[9] ST Microelectronic (2016), STM32F3 Programming manual. Trang Web Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.6: Giao tiếp SPI - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 1.6 Giao tiếp SPI (Trang 19)
Hình 1.14: Kết nối nhiều Slave song song - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 1.14 Kết nối nhiều Slave song song (Trang 25)
Hình 1.15: Kết nối nối tiếp - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 1.15 Kết nối nối tiếp (Trang 26)
Hình 2.3: Sơ đồ khối dòng vi điều khiển STM32F3 - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 2.3 Sơ đồ khối dòng vi điều khiển STM32F3 (Trang 29)
Hình 2.4: Module đầu in - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 2.4 Module đầu in (Trang 30)
Hình 2.9: Sơ đồ mạch cấp nguồn cho vi điều khiển và chíp nhớ - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 2.9 Sơ đồ mạch cấp nguồn cho vi điều khiển và chíp nhớ (Trang 35)
Hình 2.8: Sơ đồ mạch cấp nguồn cho đầu in - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 2.8 Sơ đồ mạch cấp nguồn cho đầu in (Trang 35)
2.5. Sơ đồ nguyên lý của các khối phần cứng - Thiết kế máy in hóa đơn sử dụng giao thức USART
2.5. Sơ đồ nguyên lý của các khối phần cứng (Trang 36)
Hình 2.11: Sơ đồ nguyên lý khối đầu in - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 2.11 Sơ đồ nguyên lý khối đầu in (Trang 37)
Hình 2.15: Sơ đồ nguyên lý khối nguồn - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 2.15 Sơ đồ nguyên lý khối nguồn (Trang 38)
Hình 3.3: Các tác vụ thực hiện theo chu kỳ và theo sự kiện - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 3.3 Các tác vụ thực hiện theo chu kỳ và theo sự kiện (Trang 42)
Hình 3.7: Chuyển đổi ma trận điểm ảnh thành mảng các số 8 bit - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 3.7 Chuyển đổi ma trận điểm ảnh thành mảng các số 8 bit (Trang 45)
Hình 3.9: Quá trình nạp ảnh cho máy in từ phần mềm nạp ảnh - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 3.9 Quá trình nạp ảnh cho máy in từ phần mềm nạp ảnh (Trang 51)
Hình 4.2: In hóa đơn thanh toán - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 4.2 In hóa đơn thanh toán (Trang 54)
Hình 4.3: Giao diện phần mềm nạp ảnh cho máy in - Thiết kế máy in hóa đơn sử dụng giao thức USART
Hình 4.3 Giao diện phần mềm nạp ảnh cho máy in (Trang 55)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w