Thứ Ba, 29 tháng 1, 2019

So sánh xung PPM và xung PWM

1.Xung PWM
Xung là các trạng thái cao / thấp (HIGH/LOW) về mức điện áp được lặp đi lặp lại. Đại lượng đặc trưng cho 1 xung PWM (Pulse Width Modulation) bao gồm tần số (frequency) và chu kì xung (duty cycle).

Tần số là gì?
Tần số là số lần lặp lại trong 1 đơn vị thời gian. Đơn vị tần số là Hz, tức là số lần lặp lại dao động trong 1 giây.

Lấy ví dụ, 1Hz = 1 dao động trong 1 giây. 2Hz = 2 dao động trong 1 giây. 16MHz = 16 triệu dao động trong 1 giây.
Như vậy theo quy tắc tam suất: 16 triệu dao động - 1 giây --> 1 dao động tốn 1/16.000.000 (giây) = 0,0625 (micro giây)

Cách xác định 1 dao động như thế nào? Đa phần các bạn mới nghiên cứu điện tử thường mắc sai lầm ở việc xác định 1 dao động. Dao động được xác định từ trạng thái bắt đầu và kết thúc ngay trước khi trạng thái bắt đầu được lặp lại.




Như vậy thông thường, 1 dao động sẽ bao gồm 2 trạng thái điện: mức cao (x giây) và mức thấp (y giây). Tỉ lệ phần trăm thời gian giữa 2 trạng thái điện này chính là chu kì xung.

Với x/y = 0% ta có xung chứa toàn bộ điện áp thấp (khái niệm xung nên hiểu mở rộng)
Với x/y = 50% thì 50% thời gian đầu, xung có điện áp cao, 50% sau xung có điện áp thấp.
Với x/y=100% ta có xung chứa toàn bộ điện áp cao.

Tóm lại, với 1 xung ta có:
Tần số: để tính toán ra được thời gian của 1 xung
Chu kì xung: bao nhiêu thời gian xung có mức áp cao, bao nhiêu thời gian xung có mức áp thấp.


2.Xung PPM
Xung PPM (Pulse Position Modulation) được sử dụng để điều khiển servo. Về bản chất PPM cũng là một xung...

Xung PPM khác với PWM ở chỗ:
tần số thông thường có giá trị trong khoảng 50Hz (20 mili giây), không quan trọng
thời gian xung ở mức cao chỉ từ 1ms đến 2ms, rất quan trọng.
có thể có nhiều hơn 1 sự thay đổi trạng thái điện cao/thấp

Nắm bắt được 2 ý trên ta đã có thể phân biệt được xung PPM và xung PWM giống nhau và khác nhau như thế nào.



Thời gian xung ở mức cao quy định góc quay của RC servo.

Với thời gian 1ms mức cao, góc quay của servo là 0, 1.5ms góc quay 90 và 2ms góc quay là 180. Các góc khác từ 0-180 được xác định trong khoảng thời gian 1-2ms.

Lưu ý: có thể ghép nhiều xung trong cùng 1 thời gian là 20ms để xác định vị trí góc của nhiều servo cùng 1 lúc. Tối đa là 10 servo.



Điều khiển 3 servo cùng lúc

Thứ Năm, 10 tháng 1, 2019

Kĩ sư lập trình nhúng,Cần gì và học gì???

Giới thiệu về lập trình nhúng

Hiện nay, tại Việt Nam, có khá ít các trường đại học đào tạo lập trình nhúng. Nhưng nguồn nhân lực cho ngành này rất nhiều và đang thiếu hụt. Hay nói cách khác lập trình nhúng đang là một trong những ngành hot nhất hiện nay. Bằng chứng là Học viện kĩ thuật mật mã – một trong những trường đại học lớn nhất nước đào tạo các chuyên gia bảo mật và an toàn thông tin, đã mở thêm ngành lập trình nhúng tuyển sinh học viên. Lập trình nhúng là một ngành rất rộng, dể dễ hiểu, chúng ta chia lập trình nhúng thành 2 hướng như sau:

1. Embedded software: 
Đi theo hướng này, các bạn chủ yếu làm việc về phần mềm, nghĩa là bạn sẽ code, còn code những gì thì bạn xem phần sau. Có rất nhiều trường đại học dạy về hướng này như: Khoa Học Tự Nhiên, Bách Khoa, FPT,… Và nó nằm trong các nhóm ngành công nghệ thông tin. Đi theo hướng này bạn có thể không biết về phần cứng (kiến thức điện tử) vẫn được. Nhưng lời khuyên là bạn nên biết một ít sẽ rất tốt.

2. Embedded hardware: 
Bạn sẽ được làm việc trên phần cứng, bạn sẽ là chuyên gia thiết kế PCB (printed circuit board ). Đây là một ngành trong nhóm ngành điện tử truyền thông.
Nếu bạn đã theo lập trình nhúng, bạn cần học gì?

Không giống như các ngành khác: Ví dụ như Android, Web Deverloper,… ban đầu bạn sẽ cảm thấy rất dễ, nhưng con đường phía sau bạn sẽ vô cùng gian nan nếu muốn trở thành chuyên gia (expert). Còn đối với lập trình nhúng, những thứ bạn phải học ban đầu là vô cùng gian nan, vô cùng khó khăn, vô cùng nhiều, khi bạn đạt được rồi, tương lai bạn sẽ dễ dàng hơn.

Những điều bạn cần học sẽ được liệt kê bên dưới:
1. Lập trình C: bạn cần học C đến mức chuyên gia, đây là ngôn ngữ quan trọng bật nhất trong lập trình nhúng.
2. Tiếng anh: ít nhất bạn phải đọc được tài liệu chuyên ngành kĩ thuật, nhất là datasheet.
3. Kiến thức về điện tử: các kiến thức về logic, vi điều khiển, vi xử lý (software thì cần một chút mảng này), ADC, TIMER, INTERRUPT, vv.
4. Các loại giao tiếp (protocol): UART, I2C, SPI, RS232, JTAG,… (nâng cao: SATA, PCIE, USB, CAN, MOST).
5. Hệ điều hành: kiến trúc hệ điều hành, kiến trúc máy tính, nhất là hệ điều hành linux.
6. Cấu trúc dữ liệu và giải thuật: nghe cái tên thôi bạn đủ hiểu, là chuyên gia phần cứng, bạn cũng phải code, đã code thì phải có giải thuật!
7. Memory: NOR, NAND, SRAM, DRAM, vv.
7. Hệ điều hành thời gian thực (Real time OS).

Trên đây là những kiến thức chung bắt buộc một kĩ sự lập trình nhúng phải có. Chúng ta sẽ đi sâu hơn về các kiến thức phải có của Embedded software và Embedded hardware.

Embedded software
Ngoài những kiến thức trên, bạn cần phải có:
1. Lập trình ứng dụng (application): C++, Java.
2. Lập trình device driver (dùng ngôn ngữ C).
3. Lập trình Android, lập trình web (basic).
4. Scrip: Perl, Python, đặt biệt là Shell script trên linux.
5. Cấu trúc dữ liệu và giải thuật cực tốt.
6. Xây dựng môi trường (build environments): Makefile, Cmake.

Embedded hardware
1. Thiết kế PCB: Allegro hay Antium.
2. Design schematic: bạn cần có kiến thức điện tử thật tốt để làm việc này.
3. Test board: sau khi đã thiết kế xong, bạn cần phải biết test board.
4. Review, đánh giá và lựa chọn linh kiện cho dự án sao cho tối ưu.
5. Sử dụng các loại dụng cụ máy đo.
6. Kĩ năng hàn mạch, sửa mạch (nếu bạn là Freelancer).

Trên đây là những kiến thức đã được tổng hợp, chắc chắn sẽ còn những thiếu sót, bạn đọc hãy bổ sung.
Mặc dù chúng tôi phân ra những kiến thức của 2 hướng như trên, nhưng trong thực tế, khi bạn là Embedded hardware thì không có nghĩa bạn không biết gì về Embedded software hay ngược lại. Bạn cần phải kiển trì rèn luyện tích lụy kiến thức từng ngày, nhất là đang ở trên giảng đường đại học. Bạn không được có suy nghĩ về việc ra trường sẽ được đào tạo những thứ này. Không đâu, học sẽ cho bạn tự học tự tìm hiểu là chính, vì vậy không có lý do gì mà ngay từ bây giờ bạn không học.
Internet of thing (IoT) và bảo mật trên các thiết bị IoT



Đây là gì thì mời các bạn tìm hiểu trên google!
Hiện nay IoT là xu hướng phát triển cực mạnh và nhanh, bạn không thể lạc hậu được, vì vậy bạn phải trang bị cho mình những kiến thức sau:
1. Networking: đây là kiến thức bạn bắt buộc phải biết khi làm IoT như: IP, TCP/IP protocol, Wifi, Bluetooth, Cellurla, Zigbee, RF, vv.
2. Webserver: bạn cần phải biết cách thức hoạt động của Webserver và cách “ra lệnh” cho phần cứng là việc từ internet (CGI, Java, Javascript, vv), và bạn cần biết lập trình web và andoid ở mức cơ bản.
3. Cloud: Cloud rất quan trọng trong trong việc quản lý, điều khiển thiết bị từ xa.
Một số giao thức: HTTP, CoAP, Lighweight M2M, …
4. Bảo mật trên các thiết bị IoT: hiện tại các thiết bị IoT đang bị tấn công rất nhiều, vì vậy là một kĩ sư IoT, bạn phải có trách nhiệm làm cho thiết bị của bạn được bảo mật hơn. Phần này có thể do IT đảm nhận.


Embedded linux




Hiện nay, với sức mạnh của vi điều khiên thì chúng ta không thể đáp ứng được nhu cầu trong các hệ thống nhúng. Embedded linux là một giải pháp, đây có thể gọi là một máy tính nhúng, sức mạnh sẽ vượt trội hơn rất nhiều so với các vi điều khiển. Được sử dụng trong các hệ thống nhúng lớn hơn.

Quá trình học Embedded linux như sau:
1. Học về hệ điều hành linux: nói cách khác là cài thêm một hệ điều hành linux mà bạn thích rồi vọc.
2. Học command line và shell script trên linux.
3. Học về cách boot hệ thống, load firmware, cách debug sửa và vá lỗi.
4. Bạn cần phải biết cách build một hệ thống nhúng, cách tốt nhất là thực hành build hệ điều hành thường xuyên trên một board ví dụ như Raspberry Pi.
5. Viết device driver để giao tiếp với các ngoại vi.
6. Phát triển ứng dụng (application).


Sau khi đọc tới đây, bạn đã hình dung được những gì mình cần phải học và phải làm trong tương lai chưa?
Đây là toàn bộ kiến thức chúng tôi tổng hợp được. Bạn nào có kinh nghiệm trong ngành này thì hãy cho ý kiến bằng cách comment vào dưới hay liên lạc qua mail hoặc facebook.
Rất mong được sự quan tâm và chia sẽ từ các bạn.

Tổng quan chi tiết về giao thức mạng TCP/IP. Giao thức TCP/IP là gì???

TCP/IP hoặc Transmission Control Protocol/Internet Protocol (Giao thức điều khiển truyền vận/giao thức mạng) là một bộ các giao thức trao đổi thông tin được sử dụng để kết nối các thiết bị mạng trên Internet. TCP/IP có thể được sử dụng như là một giao thức trao đổi thông tin trong một mạng riêng (intranet hoặc extranet)
Giao thức TCP/IP là gì

Toàn bộ bộ giao thức Internet - một tập hợp các quy tắc và thủ tục - thường được gọi là TCP/IP, mặc dù trong bộ cũng có các giao thức khác.

TCP/IP chỉ định cách dữ liệu được trao đổi qua Internet bằng cách cung cấp thông tin trao đổi đầu cuối nhằm mục đích xác định cách thức nó được chia thành các gói, được gắn địa chỉ, vận chuyển, định tuyến và nhận ở điểm đến. TCP/IP không yêu cầu quản lý nhiều và nó được thiết kế để khiến mạng đáng tin cậy hơn với khả năng phục hồi tự động.

Có hai giao thức mạng chính trong bộ giao thức mạng phục vụ các chức năng cụ thể. TCP xác định cách các ứng dụng tạo kênh giao tiếp trong mạng. Ngoài ra, nó cũng quản lý cách các tin được phân thành các gói nhỏ trước khi được chuyển qua Internet và được tập hợp lại theo đúng thứ tự tại địa chỉ đến.

IP xác định cách gán địa chỉ và định tuyến từng gói để đảm bảo nó đến đúng nơi. Mỗi gateway trên mạng kiểm tra địa chỉ IP này để xác định nơi chuyển tiếp tin nhắn.


1. Lịch sử về giao thức TCP/IP

Cơ quan chỉ đạo các dự án nghiên cứu Quốc phòng tiên tiến (Defense Advanced Research Projects Agency - DARPA), chi nhánh nghiên cứu của Bộ Quốc phòng Mỹ, đã tạo ra model TCP/IP trong những năm 1970 để sử dụng trong ARPANET, một mạng diện rộng có trước Internet. TCP/IP ban đầu được thiết kế cho hệ điều hành Unix và được tích hợp vào tất cả các hệ điều hành sau nó. Model TCP/IP và các giao thức liên quan hiện được Internet Engineering Task Force duy trì.
Giao thức TCP/IP hoạt động như thế nào?

TCP/IP sử dụng mô hình giao tiếp máy khách/máy chủ, trong đó người dùng hoặc thiết bị (máy khách) được một máy tính khác (máy chủ) cung cấp một dịch vụ (giống như gửi một trang web) trong mạng.

Nói chung, bộ giao thức TCP/IP được phân loại là không có trạng thái, có nghĩa là mỗi yêu cầu của máy khách được xem là mới bởi vì nó không liên quan đến yêu cầu trước. Việc không có trạng thái này giúp giải phóng đường mạng, do đó chúng có thể được sử dụng liên tục.

Tuy nhiên, tầng vận chuyển lại có trạng thái. Nó truyền một tin nhắn duy nhất và kết nối của nó vẫn giữ nguyên cho đến khi nhận được tất cả các gói trong tin nhắn và tập trung tại điểm đến.



Mô hình TCP/IP hơi khác so với mô hình OSI (Open Systems Interconnection - Mô hình kết nối các hệ thống mở) bảy lớp được thiết kế sau nó, nó xác định cách các ứng dụng giao tiếp trong một mạng.


2. Các tầng của TCP/IP

TCP/IP được chia thành bốn tầng, mỗi tầng bao gồm các giao thức cụ thể.
  • Tầng ứng dụng cung cấp các ứng dụng với trao đổi dữ liệu được chuẩn hóa. Các giao thức của nó bao gồm Giao thức truyền tải siêu văn bản (HTTP), Giao thức truyền tập tin (File Transfer Protocol - FTP), Giao thức POP3, Giao thức truyền tải thư tín đơn giản (Simple Mail Transfer Protocol - SMTP) và Giao thức quản lý mạng đơn giản (Simple Network Management Protocol - SNMP).
  • Tầng giao vận chịu trách nhiệm duy trì liên lạc đầu cuối trên toàn mạng. TCP xử lý thông tin liên lạc giữa các máy chủ và cung cấp điều khiển luồng, ghép kênh và độ tin cậy. Các giao thức giao vận gồm giao thức TCP và giao thức UDP (User Datagram Protocol), đôi khi được sử dụng thay thế cho TCP với mục đích đặc biệt.
  • Tầng mạng, còn được gọi là tầng Internet, có nhiệm vụ xử lý các gói và kết nối các mạng độc lập để vận chuyển các gói dữ liệu qua các ranh giới mạng. Các giao thức tầng mạng gồm IP và ICMP (Internet Control Message Protocol), được sử dụng để báo cáo lỗi.
  • Tầng vật lý bao gồm các giao thức chỉ hoạt động trên một liên kết - thành phần mạng kết nối các nút hoặc các máy chủ trong mạng. Các giao thức trong lớp này bao gồm Ethernet cho mạng cục bộ (LAN) và Giao thức phân giải địa chỉ (Address Resolution Protocol - ARP).


3. Các thuộc tính của TCP/IP

TCP/IP có nhiều thuộc tính quan trọng mà chúng ta cần xem xét. Đặc biệt, cần chú ý đến cách bộ giao thức TCP/IP giải quyết những vấn đề sau: (1) Địa chỉ logic, (2) Định tuyến, (3) Dịch vụ tạo địa chỉ tên, (4) Kiểm tra lỗi và kiểm soát giao thông, (5) Hỗ trợ ứng dụng. Những vấn đề này là cốt lõi của TCP/IP.

Địa chỉ logic
Một bộ điều hợp mạng (network adapter) có một địa chỉ vật lý cố định và duy nhất. Địa chỉ vật lý là một con số cho trước gắn vào bộ điều hợp tại nơi sản xuất. Trong mạng cục bộ, những giao thức chỉ chú trọng vào phần cứng sẽ vận chuyển dữ liệu theo mạng vật lý nhờ sử dụng địa chỉ vật lý của bộ điều hợp. Có nhiều loại mạng và mỗi mạng có cách thức vận chuyển dữ liệu khác nhau. Ví dụ, một mạng Ethernet, một máy tính gửi thông tin trực tiếp tới bộ phận trung gian. Bộ điều phối mạng của mỗi máy tính sẽ lắng nghe tất cả các tín hiệu truyền qua lại trong mạng cục bộ để xác định thông tin nào có địa chỉ nhận giống của mình.

Tất nhiên, với những mạng rộng hơn, các bộ điều hợp không thể lắng nghe tất cả các thông tin. Khi các bộ phận trung gian trở nên quá tải với số lượng máy tính được thêm mới, hình thức hoạt động này không thể hoạt động hiệu quả.

Các nhà quản trị mạng thường phải chia vùng mạng bằng cách sử dụng các thiết bị như bộ định tuyến để giảm lượng giao thông. Trên những mạng có định tuyến, người quản trị cần có cách để chia nhỏ mạng thành những phần nhỏ (gọi là tiểu mạng) và thiết lập các cấp độ để thông tin có thể di chuyển tới đích một cách hiệu quả. TCP/IP cung cấp khả năng chia tiểu mạng thông qua địa chỉ logic. Một địa chỉ logic là địa chỉ được thiết lập bằng phần mềm của mạng. Trong TCP/IP, địa chỉ logic của một máy tính được gọi là địa chỉ IP. Một địa chỉ IP bao gồm: mã số (ID) mạng, dùng để xác định mạng; ID tiểu mạng, dùng để xác định vị trí tiểu mạng trong hệ thống; ID máy nguồn (chủ), dùng để xác định vị trí máy tính trong tiểu mạng.

Hệ thống tạo địa chỉ IP cũng cho phép quản trị mạng đặt ra hệ thống số của mạng một cách hợp lý để khi cần mở rộng có thể dễ dàng bổ sung và quản lý.

Định tuyến
Bộ định tuyến là thiết bị đặc biệt có thể đọc được thông tin địa chỉ logic và điều khiển dữ liệu trên mạng tới được đích của nó.

Ở mức độ đơn giản nhất, bộ định tuyến phân chia tiểu vùng từ hệ thống mạng (xem hình 1.3). Dữ liệu cần chuyển tới địa chỉ nằm trong tiểu vùng đó, nên không qua bộ định tuyến. Nếu dữ liệu cần tới máy tính nằm ngoài tiểu vùng của máy gửi đi (máy chủ), thì bộ định tuyến sẽ làm nhiệm vụ của mình. Trong những mạng có quy mô rộng lớn hơn, như Internet chẳng hạn, sẽ có vô vàn bộ định tuyến và cung cấp các lộ trình khác nhau từ nguồn tới đích
TCP/IP bao gồm các giao thức có chức năng xác định cách các bộ định tuyến tìm lộ trình trong mạng.


Giải pháp địa chỉ dạng tên
Mặc dù địa chỉ IP số có thể thân thiện hơn với địa chỉ vật lý của adapter mạng, nhưng IP được thiết kế chỉ đơn giản là nhằm tạo sự thuận tiện cho máy tính chứ không phải con người. Mọi người chắc chắn sẽ gặp phải khó khăn khi nhớ các địa chỉ như 111.121.131.146 hay 111.121.131.156. Vì thế, TCP/IP cung cấp một địa chỉ dạng ký tự tương ứng với địa chỉ số, những địa chỉ ký tự này được gọi là tên miền hay DNS (Dịch vụ tên miền). Một số máy tính đặc biệt được gọi là máy chủ quản lý tên miền lưu trữ các bảng hướng dẫn cách gắn tên miền với địa chỉ số.


Kiểm tra lỗi và kiểm soát giao thông
Bộ giao thức TCP/IP cung cấp các thuộc tính đảm bảo mức độ tin cậy của việc vận chuyển dữ liệu trên mạng. Những thuộc tính này bao gồm việc kiểm tra lỗi trong quá trình vận chuyển (để xác định dữ liệu đã tới nơi chính là cái đã được gửi đi) và xác nhận việc thông tin đã được nhận. Lớp Vận chuyển của TCP/IP xác định các việc kiểm tra lỗi và xác nhận thông qua giao thức TCP. Nhưng giao thức ở cấp thấp hơn, Lớp Truy cập Mạng, cũng đóng một vai trò trong toàn bộ quá trình kiểm tra lỗi.

Hỗ trợ ứng dụng
Bộ giao thức phải cung cấp giao diện cho ứng dụng trên máy tính để những ứng dụng này có thể tiếp cận được phần mềm giao thức và có thể vào mạng. Trong TCP/IP, giao diện từ mạng cho tới ứng dụng chạy trên máy ở mạng cục bộ được thực hiện thông qua các kênh logic gọi là cổng (port). Mỗi cổng có một số đánh dấu.



4. Giao thức TCP/IP hoạt động như thế nào?

Như tên của nó, TCP/IP là sự kết hợp của hai giao thức riêng biệt: Giao thức kiểm soát truyền tin (TCP) và giao thức Internet (IP). Giao thức Internet cho phép các gói được gửi qua mạng; Nó cho biết các gói tin được gửi đi đâu và làm thế nào để đến đó. IP có một phương thức cho phép bất kỳ máy tính nào trên Internet chuyển tiếp gói tin tới một máy tính khác thông qua một hoặc nhiều khoảng (chuyển tiếp) gần với người nhận gói tin. Bạn có thể nghĩ về nó giống như các công nhân trong một đường chuyền tảng đá từ một mỏ đá đến một chiếc xe tải khai thác mỏ.

Giao thức điều khiển truyền dẫn có trách nhiệm đảm bảo việc truyền dữ liệu đáng tin cậy qua các mạng kết nối Internet. TCP kiểm tra các gói dữ liệu xem có lỗi không và gửi yêu cầu truyền lại nếu có lỗi được tìm thấy.
Các giao thức TCP/IP phổ biến nhất
HTTP – Được sử dụng giữa một web client và một web server, để truyền dữ liệu không an toàn. Một web client(tức là trình duyệt Internet trên máy tính) gửi một yêu cầu đến một web server để xem một trang web. Máy chủ web nhận được yêu cầu đó và gửi thông tin trang web về cho web client.
HTTPS – Được sử dụng giữa một web client và một web server, để truyền dữ liệu an toàn. Thường được sử dụng để gửi dữ liệu giao dịch thẻ tín dụng hoặc dữ liệu cá nhân khác từ một web client(ví dụ trình duyệt Internet trên máy tính) tới một web server.
FTP – Được sử dụng giữa hai hoặc nhiều máy tính. Một máy tính gửi dữ liệu đến hoặc nhận dữ liệu từ máy tính khác một cách trực tiếp.
Tên miền và địa chỉ TCP/IP

Địa chỉ TCP/IP cho một trang web hoặc web server thường không dễ nhớ. Để khắc phục vấn đề này, một tên miền (domain) được sử dụng thay thế. Ví dụ: 216.58.216.188 là một trong những địa chỉ IP của Google và google.com là tên miền. Sử dụng phương pháp này, thay vì một bộ số, giúp người dùng dễ dàng nhớ địa chỉ web của:https://cogetechcorp.blogspot.com/



5.Sự khác nhau giữa giao thức TCP và UDP

Bạn có thể đã thấy TCP và UDP khi thiết lập chuyển tiếp cổng trên routerhoặc khi cấu hình phần mềm tường lửa. Hai giao thức này được sử dụng cho kiểu dữ liệu khác nhau.

TCP/IP là một bộ các cổng được thiết bị sử dụng để giao tiếp qua Internet và hầu hết các mạng cục bộ. Nó được đặt tên theo hai giao thức ban đầu của nó - Transmission Control Protocol (TCP) và Internet Protocol (IP). TCP cung cấp cho các ứng dụng cách để chuyển (và nhận) một luồng gói thông tin đã được đặt hàng và kiểm tra lỗi qua mạng. Giao thức User Datagram Protocol (UDP) được các ứng dụng sử dụng để vận chuyển một luồng dữ liệu nhanh hơn bằng cách bỏ qua kiểm tra lỗi. Khi cấu hình phần cứng hoặc phần mềm mạng bạn sẽ thấy sự khác biệt.
Điểm giống nhau giữa hai giao thức

TCP và UDP đều là các giao thức được sử dụng để gửi các bit dữ liệu - được gọi là các gói tin - qua Internet. Cả hai giao thức đều được xây dựng trên giao thức IP. Nói cách khác, dù bạn gửi gói tin qua TCP hay UDP, gói này sẽ được gửi đến một địa chỉ IP. Những gói tin này được xử lý tương tự bởi vì chúng được chuyển tiếp từ máy tính của bạn đến router trung gian và đến điểm đích.



TCP và UDP không phải là giao thức duy nhất hoạt động trên IP, tuy nhiên, chúng được sử dụng rộng rãi nhất.


Cách thức hoạt động của TCP

TCP là giao thức được sử dụng phổ biến nhất trên Internet. Khi bạn yêu cầu một trang web trong trình duyệt, máy tính sẽ gửi các gói tin TCP đến địa chỉ của máy chủ web, yêu cầu nó gửi lại trang web. Máy chủ web phản hồi bằng cách gửi một luồng các gói tin TCP, mà trình duyệt web của bạn kết hợp với nhau để tạo thành trang web. Khi click vào liên kết, đăng nhập, đăng nhận xét hoặc làm bất kỳ điều gì khác, trình duyệt web của bạn sẽ gửi gói tin TCP tới máy chủ và máy chủ gửi lại các gói tin cho TCP.

Giao thức TCP có độ tin cậy cao, các gói tin được gửi bằng TCP sẽ được theo dõi do vậy dữ liệu sẽ không bị mất hoặc hỏng trong quá trình vận chuyển. Đó là lý do tại sao file tải xuống không bị hỏng ngay cả khi mạng có vấn đề. Tất nhiên, nếu bên nhận hoàn toàn ngoại tuyến, máy tính của bạn sẽ từ bỏ và bạn sẽ thấy một thông báo lỗi ghi nó không thể giao tiếp với máy chủ lưu trữ từ xa.

Giao thức TCP đạt được điều này theo hai cách. Đầu tiên, nó yêu cầu các gói tin bằng cách đánh số chúng. Thứ hai, nó kiểm tra lỗi bằng cách yêu cầu bên nhận gửi phản hồi đã nhận được cho bên gửi. Nếu bên gửi không nhận được phản hồi đúng, nó có thể gửi lại gói tin để đảm bảo bên nhận nhận chúng một cách chính xác.


Cách thức hoạt động của UDP

Giao thức UDP hoạt động tương tự như TCP, nhưng nó bỏ qua quá trình kiểm tra lỗi. Khi một ứng dụng sử dụng giao thức UDP, các gói tin được gửi cho bên nhận và bên gửi không phải chờ để đảm bảo bên nhận đã nhận được gói tin, do đó nó lại tiếp tục gửi gói tin tiếp theo. Nếu bên nhận bỏ lỡ một vài gói tin UDP, họ sẽ mất vì bên gửi không gửi lại chúng. Do đó thiết bị có thể giao tiếp nhanh hơn.

UDP được sử dụng khi tốc độ nhanh và không cần thiết sửa lỗi. Ví dụ, UDP thường được sử dụng cho các chương trình phát sóng trực tiếp và game online.

Giả dụ, bạn đang xem phát video trực tiếp, thường được phát bằng UDP thay vì TCP. Máy chủ sẽ gửi một luồng liên tục các gói tin UDP tới máy tính đang xem. Nếu bạn mất kết nối trong vài giây, video sẽ bị dừng hoặc bị giật trong giây lát và sau đó chuyển sang bit hiện tại của chương trình phát sóng. Nếu bạn chỉ bị mất gói tin nhỏ, video hoặc âm thanh có thể bị méo trong giây lát vì video sẽ tiếp tục phát mà không có dữ liệu bị thiếu.

Điều này hoạt động tương tự trong các trò chơi trực tuyến. Nếu bạn bỏ lỡ một số gói tin UDP, nhân vật người chơi có thể dịch chuyển trên bản đồ khi bạn nhận gói tin UDP mới. Việc bỏ qua sửa lỗi của TCP sẽ giúp tăng tốc kết nối trò chơi và giảm độ trễ.


6. Ưu điểm của TCP/IP

TCP/IP không thuộc và chịu sự kiểm soát của bất kỳ công ty nào, do đó bộ giao thức mạng này có thể dễ dàng sửa đổi. Nó tương thích với tất cả các hệ điều hành, vì vậy có thể giao tiếp với các hệ thống khác. Ngoài ra, nó còn tương thích với tất các các loại phần cứng máy tính và mạng.

TCP/IP có khả năng mở rộng cao và như một giao thức có thể định tuyến, nó có thể xác định đường dẫn hiệu quả nhất thông qua mạng.



Thứ Tư, 9 tháng 1, 2019

[Học ARM] Lập trình GPIO In/Out của vi điều khiển – STM32

General-purpose Input/Output (GPIO) rất phổ biến, là một chức năng ngoại vi cơ bản của mỗi loại vi điều khiển, bao gồm các chân đầu vào và chân đầu ra, có thể được điều khiển bởi người dùng. Nó tương tự với các dòng vi điều khiển 8bit như AVR hoặc PIC. Không giống như những dòng vi điều khiển 8bit, chỉ có 8 chân IO trên 1 port thì ở các vi điều khiển 32bit, có đến 16 chân IO trên 1 port. Cụ thể đối với chip STM32F103C8Tx gồm có 3 Port chính đó là GPIOA, GPIOB, GPIOC. Không phải tất cả các port đều có 16 chân, chỉ riêng GPIOA, GPIOB trên kit thì có đủ 16 chân GPIO.

Tiếp theo chúng ta đến phần cấu trúc 1 chân GPIO của chip:



Có 2 khối điều khiển khác nhau (khung hình nét đứt) như ở hình trên

– Output

– Input và các điều khiển đầu ra khác

Chức năng của GPIO bao gồm:




Bài viết này sẽ hướng dẫn về chức năng Output states: Output push-pull. Sau đây sẽ là sơ lược về cấu trúc phần cứng và khối điều khiển Output.


1. Các thanh ghi dữ liệu:

Bit set/reset register:

Ở mỗi chân general-purpose I/O port đều có 2 thanh ghi cấu hình 32 bit (GPIOx_CRL, GPIO_CRH: Control Register High, Control Register Low):

– Thanh ghi 32 bit dùng để set/reset các bit ở các chân IO (GPIOx_BSRR: Bit Set Reset Register)

– Thanh ghi 16 bit reset các bit ở các chân IO (GPIOx_BRR: Bit Reset Register) với x là các port của vi điều khiển.

Output data register:

Dữ liệu sau khi các bit đã được set/reset ở thanh ghi trên sẽ được truyền sang thanh ghi dữ liệu đầu ra 32bit (GPIOx_ODR: Output data register) và truyền đến khối điều khiển để xuất mức tín hiệu cho chân IO. Ngoài ra đối với thanh ghi này, chúng ta có thể đọc dữ liệu để xem trạng thái hiện tại của các chân IO đang ở mức “1” hoặc mức “0”.

2.Cách xuất mức tín hiệu output thông qua khối CMOS:

Ở push-pull mode:

Cấu hình chân I/O là ngõ ra, khi output control = 0 thì P-MOS sẽ dẫn, chân I/O sẽ nối VDD, còn khi output control = 1 thì N-MOS dẫn, chân I/O được nối VSS.

Khi ghi các bit Reset vào thanh ghi GPIOx_BSRR hoặc GPIOx_BRR dữ liệu sẽ được truyền sang thanh ghi output và đẩy tới khối điều khiển. Đầu ra của P-MOS sẽ là mức 1 vì ở trước P-MOS có 1 cổng đảo tín hiệu và N-MOS sẽ là mức 0, thì lúc này P-MOS sẽ được kích và chân IO có tín hiệu mức “1”:



Ngược lại, khi ghi các bit Set vào thanh ghi GPIOx_BSRR dữ liệu sẽ được truyền sang thanh ghi output và đẩy tới khối điều khiển. Đầu ra của P-MOS sẽ là mức 0 vì ở trước P-MOS có 1 cổng đảo tín hiệu và N-MOS sẽ là mức 1, thì lúc này N-MOS sẽ được kích và chân IO có tín hiệu mức “0”:



Chúng ta sẽ sử dụng CubeMX để sinh code và lập trình trên môi trường KeilC-V5. Khi sinh code, chúng ta sẽ làm việc dựa trên lớp thư viện HAL-Hardware Abstraction Layerr. Thư viện này được xây dựng dựa trên các thư viện tiêu chuẩn (Std) của STM32, để tiếp cận được nhanh chóng dòng vi điều khiển này thì chúng ta sẽ không đi quá sâu vào việc set/reset các bit ở trong thanh ghi. Mà sử dụng phần mềm CubeMX để sinh code và sử dụng các hàm GPIO có sẵn trong thư viện HAL.

Điện toán đám mây hay Cloud Computing là gì???

Bạn có thể đã nghe nói thuật ngữ điện toán đám mây hay “Cloud Computing”, vậy bạn đã hiểu điện toán đám mây là gì? Có rất nhiều định nghĩa bay xung quanh rằng bạn sẽ không được một mình nếu bạn đấu tranh để định nghĩa nó. Điện toán đám mây chỉ đơn giản là một tập hợp các tài nguyên máy tính gộp lại và các dịch vụ cung cấp trên web. Khi bạn biểu đồ mối quan hệ giữa tất cả các yếu tố tương tự như một đám mây.



Điện toán đám mây không nên nhầm lẫn với điện toán lưới, tính toán tiện ích, hoặc tự trị tính toán liên quan đến sự tương tác của một số tài nguyên ảo hóa. Đám mây máy chủ ™ kết nối và chia sẻ thông tin dựa trên mức độ lưu lượng truy cập trang web trên toàn bộ mạng. Điện toán đám mây thường được cung cấp như một dịch vụ “qua Internet, thường là dưới hình thức cơ sở hạ tầng như một dịch vụ (IaaS), nền tảng như một dịch vụ (PaaS), hoặc phần mềm như một dịch vụ (SaaS).

Khách hàng sử dụng điện toán đám mây không phải tăng vốn để mua hàng, quản lý, duy trì và mở rộng cơ sở hạ tầng vật lý cần thiết để xử lý các biến động giao thông quyết liệt. Thay vì phải đầu tư thời gian và tiền bạc để giữ cho trang web của họ nổi, với điện toán đám mây khách hàng chỉ cần trả tiền cho các tài nguyên mà họ sử dụng. Điểm nổi bật đặc đặc biệt của điện toán đám mây là khả năng tính toán, tính đàn hồi, co giãn tài nguyên, có nghĩa rằng khách hàng không còn cần phải dự đoán lưu lượng truy cập, nhưng có thể thúc đẩy các trang web của họ mạnh mẽ và một cách tự nhiên. Kỹ thuật cho giao thông cao điểm trở thành một điều của quá khứ.

Một cách đơn giản, điện toán đám mây là việc ảo hóa các tài nguyên tính toán và các ứng dụng. Thay vì việc bạn sử dụng một hoặc nhiều máy chủ thật (ngay trước mắt, có thể sờ được, có thể tự bạn ấn nút bật tắt được) thì nay bạn sẽ sử dụng các tài nguyên được ảo hóa (virtualized) thông qua môi trường Internet. Bản thân từ đám mây (cloud) là một từ ẩn dụ (metaphor) cho Internet.
Như vậy, trước đây để có thể triển khai một ứng dụng (ví dụ một trang Web), bạn phải đi mua/thuê một hay nhiều máy chủ (server), sau đó đặt máy chủ tại các trung tâm dữ liệu (data center) thì nay điện toán đám mây cho phép bạn giản lược quá trình mua/thuê đi. Bạn chỉ cần nêu ra yêu cầu của mình, hệ thống sẽ tự động gom nhặt các tài nguyên rỗi (free) để đáp ứng yêu cầu của bạn. Chính vì vậy, có thể kể đến một vài lợi ích cơ bản của điện toán đám mây như sau :
Sử dụng các tài nguyên tính toán động (Dynamic computing resources) : Các tài nguyên được cấp phát cho doanh nghiệp đúng như những gì doanh nghiệp muốn một cách tức thời. Thay vì việc doanh nghiệp phải tính toán xem có nên mở rộng hay không, phải đầu tư bao nhiêu máy chủ thì nay doanh nghiệp chỉ cần yêu cầu “Hey, đám mây, chúng tôi cần thêm tài nguyên tương đương với 1 CPU 3.0 GHz, 128GB RAM…” và đám mây sẽ tự tìm kiếm tài nguyên rỗi để cung cấp cho bạn.
Giảm chi phí : Doanh nghiệp sẽ có khả năng cắt giảm chi phí để mua bán, cài đặt và bảo trì tài nguyên. Rõ ràng thay vì việc phải cử một chuyên gia đi mua máy chủ, cài đặt máy chủ, bảo trì máy chủ thì nay bạn chẳng cần phải làm gì ngoài việc xác định chính xác tài nguyên mình cần và yêu cầu. Quá tiện!.
Giảm độ phức tạp trong cơ cấu của doanh nghiệp : Doanh nghiệp sản xuất hàng hóa mà lại phải có cả một chuyên gia IT để vận hành, bảo trì máy chủ thì quá tốn kém. Nếu outsource được quá trình này thì doanh nghiệp sẽ chỉ tập trung vào việc sản xuất hàng hóa chuyên môn của mình và giảm bớt được độ phức tạp trong cơ cấu.
Tăng khả năng sử dụng tài nguyên tính toán : Một trong những câu hỏi đau đầu của việc đầu tư tài nguyên (ví dụ máy chủ) là bao lâu thì nó sẽ hết khấu hao, tôi đầu tư như thế có lãi hay không, có bị outdate về công nghệ hay không … Khi sử dụng tài nguyên trên đám mây thì bạn không còn phải quan tâm tới điều này nữa.
Kiến trúc hướng dịch vụ (SOA)

Tuy vậy, để có thể tận dụng tối đa điện toán đám mây thì điều quan trọng là doanh nghiệp cần phải tìm một nhà cung cấp “đám mây” đủ tốt để đáp ứng được cho mình tất cả những điều trên. Trong tương lai, điện toán đám mây sẽ rất hữu ích khi nó vươn cả tới việc sử dụng những tài nguyên dư thừa trong các máy tính cá nhân của chính bạn. CloudHost là một trong những nhà cung cấp điện toán đám mây theo mô hình IaaS đầu tiên ở Việt Nam.

Gỡ bỏ mật khẩu đăng nhập Windows 8, 8.1,win 10 ,NTN

Khi không phải bảo mật máy tính vì trong máy không có các tài liệu quan trọng. Hay bạn muốn thay một chiếc máy khác cho công việc và chiếc máy bạn đang dùng bạn mang về nhà và để cho mọi thành viên sử dụng. Thật khá phiền phức khi mỗi lần khởi động lại phải đăng nhập mật khẩu. Chiếc máy tính của bạn đang sử dụng hệ điều hành windows 8 hay 8.1 và bạn muốn tháo bỏ mật khẩu đăng nhập cho windows thì có cách nào đây?


Bước 1: Bạn nhấn tổ hợp phím tắt Windows + R

Bước 2: Gõ netplwiz rồi Click OK



Bước 3: Ở bước này các bạn bỏ dấu tích ở mục Users, sau đó Click OK để hoàn tất công việc



Vậy là công việc tháo bỏ mật khẩu gây rắc rối mỗi khi mở máy lên đã được hoàn tất rồi.

Thứ Bảy, 5 tháng 1, 2019

eSIM là gì và tầm quan trọng của việc loại bỏ hoàn toàn SIM vật lý

Thời điểm hiện tại, ta có hai thiết bị đại trà sử dụng eSIM là Apple Watch Series 3 và Pixel 2. Vừa mới đây, Apple công bố chiếc iPhone XS và XS Max cũng sử dụng công nghệ eSIM. Thuật ngữ eSIM xuất hiện ngày một nhiều, khác hẳn với thời điểm lần đầu tiên nó xuất hiện kèm theo chiếc smartwatch Samsung Gear S2. Chắc chắn bạn có thắc mắc eSIM là gì, và đây sẽ là lời giải thích cho bạn.

Khái niệm cơ bản trước: eSIM là gì?
Lợi ích "dễ thấy" nhất của eSIM sẽ là nó vô cùng nhỏ. Nó chỉ bằng một phần của nanoSIM mà các bạn đều biết, nanoSIM tí hon nhường nào. Đây chính là điểm khiến cho eSIM thích hợp với smartwatch, những thiết bị vốn nhỏ gọn, không có chỗ chứa một cái thẻ SIM. Mà đó cũng chính là bản chất tiến hóa của công nghệ: mọi thứ càng ngày càng nhỏ lại, tinh vi hơn.
Bạn không thể tháo được eSIM, bản thân nó sẽ là một phần của thiết bị. Không tháo được, đồng nghĩa với việc thiết bị sẽ không có khe hở để bụi/nước/tạp chất len lỏi vào bên trong phần cứng. Việc chuyển nhà mạng sẽ được thực hiện qua phần mềm hết, và khi eSIM trở thành một phần mặc định của thiết bị di động, cơ sở hạ tầng của nhà mạng sẽ trở nên gọn nhẹ, linh hoạt hơn nhiều.
iPhone mới có 2 SIM, 1 cái là eSIM vậy eSIM là gì? - Ảnh 3.
eSIM (hay còn biết đến với tên SIM điện tử) là giải pháp nhằm thay thế cho thẻ SIM truyền thống đã được sử dụng trong suốt nhiều thập kỷ qua, và được coi là bước phát triển tiếp theo trong lĩnh vực này. SIM điện tử có một số ưu điểm như không dễ bị hỏng hóc, đánh mất như SIM truyền thống, người dùng cũng có thể tùy ý thay đổi nhà mạng mà không cần phải thay thẻ SIM. 
Viettel tung video hướng dẫn kích hoạt eSIM trên iPhone, thời điểm triển khai đã rất gần? - Ảnh 5.
Xét về tương lai sau này của eSIM

eSIM sẽ không chỉ nằm trên cổ tay bạn, GSMA – đơn vị đại diện cho các nhà mạng toàn cầu muốn biến eSIM thành quy chuẩn mới. Bên cạnh Samsung và Apple, một loạt nhà mạng nổi tiếng thế giới tuyên bố sẽ tham gia vào làn sóng eSIM. Dữ liệu mạng hiện có trên SIM truyền thống sẽ được đưa sang thiết bị sử dụng eSIM mới, có lẽ sẽ phải mất chút công sức thực hiện trong giai đoạn thử nghiệm đầu và chút thời gian để quen được với nhịp công nghệ mới.
Một điểm mạnh đáng nói khác: khi bạn di chuyển sang nước khác, bạn sẽ không cần phải mua SIM nội địa để lắp máy nữa, nhà mạng địa phương sẽ có những phương thức chuyển tạm thời trong thời gian bạn công tác/du lịch.
Trong hệ sinh thái nhà mạng – thiết bị - SIM hiện tại, mỗi một máy lại dùng một kích cỡ SIM khác nhau. Khi quy về một mối, bỏ qua SIM vật lý là thiết bị trung gian phải có để kết nối điện thoại với nhà mạng, thay bằng một SIM siêu nhỏ nằm ngay bên trong thiết bị, mọi thứ sẽ tiện lợi hơn nhiều.
SIM nhỏ hơn tất sẽ khiến smartphone gọn hơn
Linh kiện điện tử càng nhỏ, càng tinh vi thì thiết bị sẽ càng hiện đại. Càng thêm nhiều linh kiện điện tử, thiết bị sẽ đi được xa hơn nữa. Chắc hẳn bạn đã nhận ra tầm quan trọng của việc loại bỏ hoàn toàn thẻ SIM cồng kềnh.


Hồi cuối tháng 9/2018, đại diện Viettel từng chia sẻ với chúng tôi rằng nhà mạng này đang nỗ lực để trở thành nhà mạng đầu tiên tại Việt Nam cung cấp dịch vụ eSIM cho người dùng. Vào thời điểm đó, Viettel vẫn còn khá úp mở về lộ trình của mình và vẫn chưa đưa ra thời gian cụ thể sẽ triển khai eSIM
Quá trình kích hoạt eSIM Viettel rất đơn giản và tuân theo quy chuẩn của Apple. Người dùng sẽ nhận được một mã QR Code từ Viettel, sau đó họ sẽ quét mã QR này bằng điện thoại. Thông số cấu hình của nhà mạng sau đó sẽ được bổ sung vào eSIM của thiết bị và người dùng ngay lập tức đã có thể nghe/gọi/nhắn tin/vào mạng như bình thường. Người dùng cũng có thể lắp thêm một SIM vật lý vào khay SIM của máy để kích hoạt tính năng 2 SIM 2 sóng của iPhone XS, XS Max và XR.
Viettel tung video hướng dẫn kích hoạt eSIM trên iPhone, thời điểm triển khai đã rất gần? - Ảnh 2.